@Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int columns) { ActionArgumentValuesTableModel model = (ActionArgumentValuesTableModel)table.getModel(); ActionArgumentValue argumentValue = model.getValues()[row]; ActionArgument argument = model.getValueAt(row); switch (argument.getDatatype().getBuiltin()) { case BOOLEAN: return new BooleanArgumentValueCellComponent(argumentValue, editable); default: String argumentStringValue = null; if (argumentValue != null && argumentValue.toString().length() == 0) { argumentStringValue = "<<NULL>>"; } else if (argumentValue != null && argumentValue.toString().length() > 0) { argumentStringValue = argumentValue.toString(); } else if (argumentValue == null) { argumentStringValue = "Click to edit..."; } return super.getTableCellRendererComponent( table, argumentStringValue, isSelected, hasFocus, row, columns ); } }
@Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int columns) { StateVariableValuesTableModel model = (StateVariableValuesTableModel)table.getModel(); StateVariableValue stateVariableValue = model.getValueAt(row); StateVariable stateVariable = stateVariableValue.getStateVariable(); switch (stateVariable.getTypeDetails().getDatatype().getBuiltin()) { case BOOLEAN: return new BooleanArgumentValueCellComponent(stateVariableValue); default: String stringValue; if (stateVariableValue != null && stateVariableValue.toString().length() > 0) { stringValue = stateVariableValue.toString(); } else { stringValue = "<<NULL>>"; } return super.getTableCellRendererComponent( table, stringValue, isSelected, hasFocus, row, columns ); } }
public boolean isModeratedNumericType() { return Datatype.Builtin.isNumeric( getTypeDetails().getDatatype().getBuiltin() ) && getEventDetails().getEventMinimumDelta() > 0; }
if (!Datatype.Builtin.STRING.equals(getDatatype().getBuiltin())) { errors.add(new ValidationError( getClass(),
protected ActionArgumentValue[] createDefaultValuesInput(Action action) { ActionArgument[] arguments = action.getInputArguments(); ActionArgumentValue[] defaultValues = new ActionArgumentValue[arguments.length]; for (int i = 0; i < arguments.length; i++) { // Visually, a boolean is shown by the renderer as "off", so even without invoking the editor, we need // to set its value to "off" in the model. if (Datatype.Builtin.BOOLEAN.equals(arguments[i].getDatatype().getBuiltin())) { defaultValues[i] = new ActionArgumentValue(arguments[i], false); } else { defaultValues[i] = new ActionArgumentValue(arguments[i], ""); } } return defaultValues; }
protected void validateType(StateVariable stateVariable, Class type) throws LocalServiceBindingException { // Validate datatype as good as we can // (for enums and other convertible types, the state variable type should be STRING) Datatype.Default expectedDefaultMapping = ModelUtil.isStringConvertibleType(getStringConvertibleTypes(), type) ? Datatype.Default.STRING : Datatype.Default.getByJavaType(type); log.finer("Expecting '" + stateVariable + "' to match default mapping: " + expectedDefaultMapping); if (expectedDefaultMapping != null && !stateVariable.getTypeDetails().getDatatype().isHandlingJavaType(expectedDefaultMapping.getJavaType())) { // TODO: Consider custom types?! throw new LocalServiceBindingException( "State variable '" + stateVariable + "' datatype can't handle action " + "argument's Java type (change one): " + expectedDefaultMapping.getJavaType() ); } else if (expectedDefaultMapping == null && stateVariable.getTypeDetails().getDatatype().getBuiltin() != null) { throw new LocalServiceBindingException( "State variable '" + stateVariable + "' should be custom datatype " + "(action argument type is unknown Java type): " + type.getSimpleName() ); } log.finer("State variable matches required argument datatype (or can't be validated because it is custom)"); }
protected TableCellEditor createArgumentValueCellEditor(ActionArgument argument, ActionArgumentValue currentValue) { if (argument.getDatatype().getBuiltin() != null) { switch (argument.getDatatype().getBuiltin()) { case UI1: case UI2:
if (Datatype.Builtin.STRING.equals(datatype.getBuiltin())) { if (Datatype.Builtin.isNumeric(datatype.getBuiltin())) { if (getAnnotation().eventMinimumDelta() > 0 && Datatype.Builtin.isNumeric(datatype.getBuiltin())) {
} else { appendNewElementIfNotNull(descriptor, stateVariableElement, ELEMENT.dataType, stateVariable.getTypeDetails().getDatatype().getBuiltin().getDescriptorName());
if (!Datatype.Builtin.STRING.equals(getDatatype().getBuiltin())) { errors.add(new ValidationError( getClass(),
public boolean isModeratedNumericType() { return Datatype.Builtin.isNumeric( getTypeDetails().getDatatype().getBuiltin() ) && getEventDetails().getEventMinimumDelta() > 0; }
protected void validateType(StateVariable stateVariable, Class type) throws LocalServiceBindingException { // Validate datatype as good as we can // (for enums and other convertible types, the state variable type should be STRING) Datatype.Default expectedDefaultMapping = ModelUtil.isStringConvertibleType(getStringConvertibleTypes(), type) ? Datatype.Default.STRING : Datatype.Default.getByJavaType(type); log.finer("Expecting '" + stateVariable + "' to match default mapping: " + expectedDefaultMapping); if (expectedDefaultMapping != null && !stateVariable.getTypeDetails().getDatatype().isHandlingJavaType(expectedDefaultMapping.getJavaType())) { // TODO: Consider custom types?! throw new LocalServiceBindingException( "State variable '" + stateVariable + "' datatype can't handle action " + "argument's Java type (change one): " + expectedDefaultMapping.getJavaType() ); } else if (expectedDefaultMapping == null && stateVariable.getTypeDetails().getDatatype().getBuiltin() != null) { throw new LocalServiceBindingException( "State variable '" + stateVariable + "' should be custom datatype " + "(action argument type is unknown Java type): " + type.getSimpleName() ); } log.finer("State variable matches required argument datatype (or can't be validated because it is custom)"); }
if (Datatype.Builtin.STRING.equals(datatype.getBuiltin())) { if (Datatype.Builtin.isNumeric(datatype.getBuiltin())) { if (getAnnotation().eventMinimumDelta() > 0 && Datatype.Builtin.isNumeric(datatype.getBuiltin())) {
} else { appendNewElementIfNotNull(descriptor, stateVariableElement, ELEMENT.dataType, stateVariable.getTypeDetails().getDatatype().getBuiltin().getDescriptorName());
public boolean isModeratedNumericType() { return Datatype.Builtin.isNumeric( getTypeDetails().getDatatype().getBuiltin() ) && getEventDetails().getEventMinimumDelta() > 0; }
if (!Datatype.Builtin.STRING.equals(getDatatype().getBuiltin())) { errors.add(new ValidationError( getClass(),
protected void validateType(StateVariable stateVariable, Class type) throws LocalServiceBindingException { // Validate datatype as good as we can // (for enums and other convertible types, the state variable type should be STRING) Datatype.Default expectedDefaultMapping = ModelUtil.isStringConvertibleType(getStringConvertibleTypes(), type) ? Datatype.Default.STRING : Datatype.Default.getByJavaType(type); log.finer("Expecting '" + stateVariable + "' to match default mapping: " + expectedDefaultMapping); if (expectedDefaultMapping != null && !stateVariable.getTypeDetails().getDatatype().isHandlingJavaType(expectedDefaultMapping.getJavaType())) { // TODO: Consider custom types?! throw new LocalServiceBindingException( "State variable '" + stateVariable + "' datatype can't handle action " + "argument's Java type (change one): " + expectedDefaultMapping.getJavaType() ); } else if (expectedDefaultMapping == null && stateVariable.getTypeDetails().getDatatype().getBuiltin() != null) { throw new LocalServiceBindingException( "State variable '" + stateVariable + "' should be custom datatype " + "(action argument type is unknown Java type): " + type.getSimpleName() ); } log.finer("State variable matches required argument datatype (or can't be validated because it is custom)"); }
if (Datatype.Builtin.STRING.equals(datatype.getBuiltin())) { if (Datatype.Builtin.isNumeric(datatype.getBuiltin())) { if (getAnnotation().eventMinimumDelta() > 0 && Datatype.Builtin.isNumeric(datatype.getBuiltin())) {
} else { appendNewElementIfNotNull(descriptor, stateVariableElement, ELEMENT.dataType, stateVariable.getTypeDetails().getDatatype().getBuiltin().getDescriptorName());