diff --git a/src/main/java/org/isatools/isacreatorconfigurator/configui/DataEntryPanel.java b/src/main/java/org/isatools/isacreatorconfigurator/configui/DataEntryPanel.java index 09f4b94..b52b172 100644 --- a/src/main/java/org/isatools/isacreatorconfigurator/configui/DataEntryPanel.java +++ b/src/main/java/org/isatools/isacreatorconfigurator/configui/DataEntryPanel.java @@ -1367,21 +1367,17 @@ private boolean checkConflictingTables(String tableType, String tableName, Strin * @param newPage - JLayeredPane to change to */ public void setCurrentPage(final JLayeredPane newPage) { - SwingUtilities.invokeLater(new Runnable() { - public void run() { - if (currentPage == null) { - currentPage = newPage; - } else { - remove(currentPage); - currentPage = newPage; - } - add(currentPage, BorderLayout.CENTER); - repaint(); - validate(); - } - }); + if (currentPage == null) { + currentPage = newPage; + } else { + remove(currentPage); + currentPage = newPage; + } + add(currentPage, BorderLayout.CENTER); + repaint(); + validate(); } public ISAcreatorConfigurator getApplicationContainer() { diff --git a/src/main/java/org/isatools/isacreatorconfigurator/configui/FieldInterface.java b/src/main/java/org/isatools/isacreatorconfigurator/configui/FieldInterface.java index 2c86ced..ae0f516 100644 --- a/src/main/java/org/isatools/isacreatorconfigurator/configui/FieldInterface.java +++ b/src/main/java/org/isatools/isacreatorconfigurator/configui/FieldInterface.java @@ -657,13 +657,6 @@ public void run() { if (tfo != null) { - System.out.println(tfo.getFieldName()); - System.out.println("Data type " + tfo.getDatatype()); - System.out.println("Description " + tfo.getDescription()); - System.out.println("Hidden " + tfo.isHidden()); - System.out.println("Field list..."); - System.out.println("List values " + Arrays.toString(tfo.getFieldList())); - fieldName.setText(tfo.getFieldName()); description.setText(tfo.getDescription()); required.setSelected(tfo.isRequired()); @@ -673,8 +666,6 @@ public void run() { forceOntologySelection.setSelected(tfo.isForceOntologySelection()); if (tfo.getDatatype() == DataTypes.LIST) { - System.out.println("List values..."); - System.out.println(Arrays.toString(tfo.getFieldList())); if (tfo.getFieldList() != null) { String s = ""; @@ -761,18 +752,21 @@ public void run() { private void populateDataTypeSection(FieldObject tfo) { DataTypes fixedDataType = doesFieldHaveFixedType(); + datatype.removeActionListener(this); + datatype.removeAllItems(); + System.out.println(fixedDataType); if (fixedDataType != null) { - datatype.removeAllItems(); datatype.addItem(fixedDataType); + System.out.println("There are " + datatype.getItemCount() + " items in datatype..."); } else { - if (datatype.getItemCount() == 1) { - datatype.removeAllItems(); - for (DataTypes d : DataTypes.values()) { - datatype.addItem(d); - } + for (DataTypes d : DataTypes.values()) { + datatype.addItem(d); } } + datatype.revalidate(); + datatype.addActionListener(this); datatype.setSelectedItem(tfo.getDatatype()); +// updateUIBasedOnDataType(); } public String toString() { @@ -781,196 +775,200 @@ public String toString() { public void actionPerformed(ActionEvent event) { if (event.getSource() == datatype) { - DataTypes selected; - if (datatype.getSelectedItem() == null) { - selected = DataTypes.ONTOLOGY_TERM; - } else { - selected = DataTypes.resolveDataType(datatype.getSelectedItem().toString()); - } + updateUIBasedOnDataType(); + } - // Need to remove dependencies if a change has occurred which results in differing datatypes - if (selected == DataTypes.STRING || selected == DataTypes.LONG_STRING) { - preferredOntologySource.setVisible(false); - // initialise the default value field to be specific for String values - defaultValStd.setText(""); - defaultValStd.setEditable(true); - defaultValStd.setEnabled(true); + if (event.getSource() == isInputFormatted) { + inputFormatCont.setVisible(isInputFormatted.isSelected()); + } - //isFixedLength.setVisible(true); - isInputFormatted.setVisible(true); - //fixedLengthCont.setVisible(false); - inputFormatCont.setVisible(false); + if (event.getSource() == usesTemplateForWizard) { + wizardTemplatePanel.setVisible(usesTemplateForWizard.isSelected()); + } - usesTemplateForWizard.setVisible(true); + try { + saveFieldObject(); + } catch (DataNotCompleteException e) { + e.printStackTrace(); + } + } - // show default value field for standard inputs and hide default value combo for boolean values. - defaultValContStd.setVisible(true); - defaultValContBool.setVisible(false); + private void updateUIBasedOnDataType() { + DataTypes selected; + if (datatype.getSelectedItem() == null) { + selected = DataTypes.ONTOLOGY_TERM; + } else { + selected = DataTypes.resolveDataType(datatype.getSelectedItem().toString()); + } - // hide list data source fields. no use here! - listDataSourceCont.setVisible(false); + // Need to remove dependencies if a change has occurred which results in differing datatypes + if (selected == DataTypes.STRING || selected == DataTypes.LONG_STRING) { + preferredOntologySource.setVisible(false); + // initialise the default value field to be specific for String values + defaultValStd.setText(""); + defaultValStd.setEditable(true); + defaultValStd.setEnabled(true); - acceptsFileLocations.setEnabled(true); + //isFixedLength.setVisible(true); + isInputFormatted.setVisible(true); + //fixedLengthCont.setVisible(false); + inputFormatCont.setVisible(false); + usesTemplateForWizard.setVisible(true); - // set regex for any valid character. - defaultValStd.setFormatterFactory(new DefaultFormatterFactory( - new RegExFormatter(".*", defaultValStd, true, UIHelper.DARK_GREEN_COLOR, UIHelper.RED_COLOR, UIHelper.TRANSPARENT_LIGHT_GREEN_COLOR, UIHelper.TRANSPARENT_LIGHT_GREEN_COLOR))); - } + // show default value field for standard inputs and hide default value combo for boolean values. + defaultValContStd.setVisible(true); + defaultValContBool.setVisible(false); - if (selected == DataTypes.INTEGER) { - preferredOntologySource.setVisible(false); - // initialise the default value field to be specific for integer values - defaultValStd.setText("0"); - defaultValStd.setEditable(true); - defaultValStd.setEnabled(true); + // hide list data source fields. no use here! + listDataSourceCont.setVisible(false); - // hide all options for length and regular expressions - isInputFormatted.setVisible(false); - isInputFormatted.setSelected(false); + acceptsFileLocations.setEnabled(true); - usesTemplateForWizard.setVisible(false); - wizardTemplatePanel.setVisible(false); - inputFormatCont.setVisible(false); - acceptsFileLocations.setEnabled(false); + // set regex for any valid character. + defaultValStd.setFormatterFactory(new DefaultFormatterFactory( + new RegExFormatter(".*", defaultValStd, true, UIHelper.DARK_GREEN_COLOR, UIHelper.RED_COLOR, UIHelper.TRANSPARENT_LIGHT_GREEN_COLOR, UIHelper.TRANSPARENT_LIGHT_GREEN_COLOR))); + } - defaultValContStd.setVisible(true); - defaultValContBool.setVisible(false); + if (selected == DataTypes.INTEGER) { + preferredOntologySource.setVisible(false); + // initialise the default value field to be specific for integer values + defaultValStd.setText("0"); + defaultValStd.setEditable(true); + defaultValStd.setEnabled(true); - // hide list data source fields. no use here! - listDataSourceCont.setVisible(false); + // hide all options for length and regular expressions + isInputFormatted.setVisible(false); + isInputFormatted.setSelected(false); - // set regex for default value to only accept integers. - defaultValStd.setFormatterFactory(new DefaultFormatterFactory( - new RegExFormatter("[0-9]+", defaultValStd, true, UIHelper.DARK_GREEN_COLOR, UIHelper.RED_COLOR, UIHelper.TRANSPARENT_LIGHT_GREEN_COLOR, UIHelper.TRANSPARENT_LIGHT_GREEN_COLOR))); - } + usesTemplateForWizard.setVisible(false); + wizardTemplatePanel.setVisible(false); - if (selected == DataTypes.DOUBLE) { - preferredOntologySource.setVisible(false); - // initialise the default value field to be specific for double values - defaultValStd.setText("0.0"); - defaultValStd.setEditable(true); - defaultValStd.setEnabled(true); + inputFormatCont.setVisible(false); + acceptsFileLocations.setEnabled(false); - // hide all options for length and regular expressions - isInputFormatted.setVisible(false); - isInputFormatted.setSelected(false); - usesTemplateForWizard.setVisible(false); - wizardTemplatePanel.setVisible(false); + defaultValContStd.setVisible(true); + defaultValContBool.setVisible(false); - inputFormatCont.setVisible(false); + // hide list data source fields. no use here! + listDataSourceCont.setVisible(false); - // show the standard default value for text etc. and hide default value showing boolean options - defaultValContStd.setVisible(true); - defaultValContBool.setVisible(false); + // set regex for default value to only accept integers. + defaultValStd.setFormatterFactory(new DefaultFormatterFactory( + new RegExFormatter("[0-9]+", defaultValStd, true, UIHelper.DARK_GREEN_COLOR, UIHelper.RED_COLOR, UIHelper.TRANSPARENT_LIGHT_GREEN_COLOR, UIHelper.TRANSPARENT_LIGHT_GREEN_COLOR))); + } - // hide list data source fields. no use here! - listDataSourceCont.setVisible(false); + if (selected == DataTypes.DOUBLE) { + preferredOntologySource.setVisible(false); + // initialise the default value field to be specific for double values + defaultValStd.setText("0.0"); + defaultValStd.setEditable(true); + defaultValStd.setEnabled(true); - acceptsFileLocations.setEnabled(false); + // hide all options for length and regular expressions + isInputFormatted.setVisible(false); + isInputFormatted.setSelected(false); + usesTemplateForWizard.setVisible(false); + wizardTemplatePanel.setVisible(false); - // set the regular expression checker to handle double values. - defaultValStd.setFormatterFactory(new DefaultFormatterFactory( - new RegExFormatter("[0-9]+\\.[0-9]+", defaultValStd, true, - UIHelper.DARK_GREEN_COLOR, UIHelper.RED_COLOR, UIHelper.TRANSPARENT_LIGHT_GREEN_COLOR, UIHelper.TRANSPARENT_LIGHT_GREEN_COLOR))); - } + inputFormatCont.setVisible(false); - if (selected == DataTypes.DATE) { - preferredOntologySource.setVisible(false); - // initialise the default value field to be specific for date values - defaultValStd.setText("dd-MM-yyyy"); - defaultValStd.setEnabled(false); - defaultValStd.setEditable(true); + // show the standard default value for text etc. and hide default value showing boolean options + defaultValContStd.setVisible(true); + defaultValContBool.setVisible(false); - isInputFormatted.setVisible(false); - isInputFormatted.setSelected(false); - inputFormatCont.setVisible(false); - usesTemplateForWizard.setVisible(false); - wizardTemplatePanel.setVisible(false); + // hide list data source fields. no use here! + listDataSourceCont.setVisible(false); - // show the standard default value for text etc. and hide default value showing boolean options - defaultValContStd.setVisible(true); - defaultValContBool.setVisible(false); + acceptsFileLocations.setEnabled(false); - acceptsFileLocations.setEnabled(false); + // set the regular expression checker to handle double values. + defaultValStd.setFormatterFactory(new DefaultFormatterFactory( + new RegExFormatter("[0-9]+\\.[0-9]+", defaultValStd, true, + UIHelper.DARK_GREEN_COLOR, UIHelper.RED_COLOR, UIHelper.TRANSPARENT_LIGHT_GREEN_COLOR, UIHelper.TRANSPARENT_LIGHT_GREEN_COLOR))); + } - // hide list data source fields. no use here! - listDataSourceCont.setVisible(false); - } + if (selected == DataTypes.DATE) { + preferredOntologySource.setVisible(false); + // initialise the default value field to be specific for date values + defaultValStd.setText("dd-MM-yyyy"); + defaultValStd.setEnabled(false); + defaultValStd.setEditable(true); - if (selected == DataTypes.BOOLEAN) { - preferredOntologySource.setVisible(false); + isInputFormatted.setVisible(false); + isInputFormatted.setSelected(false); + inputFormatCont.setVisible(false); + usesTemplateForWizard.setVisible(false); + wizardTemplatePanel.setVisible(false); - // hide all options for length and regular expressions - isInputFormatted.setVisible(false); - isInputFormatted.setSelected(false); - inputFormatCont.setVisible(false); - usesTemplateForWizard.setVisible(false); - wizardTemplatePanel.setVisible(false); + // show the standard default value for text etc. and hide default value showing boolean options + defaultValContStd.setVisible(true); + defaultValContBool.setVisible(false); - // show default value field for boolean types and hide those for all other types. - defaultValContStd.setVisible(false); - defaultValContBool.setVisible(true); + acceptsFileLocations.setEnabled(false); - acceptsFileLocations.setEnabled(false); + // hide list data source fields. no use here! + listDataSourceCont.setVisible(false); + } - // hide list data source fields. no use here! - listDataSourceCont.setVisible(false); - } + if (selected == DataTypes.BOOLEAN) { + preferredOntologySource.setVisible(false); - if (selected == DataTypes.LIST) { - preferredOntologySource.setVisible(false); - listDataSourceCont.setVisible(true); - - // hide default value input - defaultValContStd.setVisible(false); - defaultValContBool.setVisible(false); - - // hide all options for length and regular expressions - isInputFormatted.setVisible(false); - isInputFormatted.setSelected(false); - inputFormatCont.setVisible(false); - usesTemplateForWizard.setVisible(false); - wizardTemplatePanel.setVisible(false); - acceptsFileLocations.setEnabled(false); - } + // hide all options for length and regular expressions + isInputFormatted.setVisible(false); + isInputFormatted.setSelected(false); + inputFormatCont.setVisible(false); + usesTemplateForWizard.setVisible(false); + wizardTemplatePanel.setVisible(false); - if (selected == DataTypes.ONTOLOGY_TERM) { - // show preferred ontology source box - preferredOntologySource.setVisible(true); - listDataSourceCont.setVisible(false); + // show default value field for boolean types and hide those for all other types. + defaultValContStd.setVisible(false); + defaultValContBool.setVisible(true); - defaultValStd.setText(""); + acceptsFileLocations.setEnabled(false); - // hide default value input - defaultValContStd.setVisible(false); - defaultValContBool.setVisible(false); - usesTemplateForWizard.setVisible(false); - wizardTemplatePanel.setVisible(false); + // hide list data source fields. no use here! + listDataSourceCont.setVisible(false); + } + if (selected == DataTypes.LIST) { + preferredOntologySource.setVisible(false); + listDataSourceCont.setVisible(true); + + // hide default value input + defaultValContStd.setVisible(false); + defaultValContBool.setVisible(false); + + // hide all options for length and regular expressions + isInputFormatted.setVisible(false); + isInputFormatted.setSelected(false); + inputFormatCont.setVisible(false); + usesTemplateForWizard.setVisible(false); + wizardTemplatePanel.setVisible(false); + acceptsFileLocations.setEnabled(false); + } - // hide all options for length and regular expressions - isInputFormatted.setVisible(false); - isInputFormatted.setSelected(false); - inputFormatCont.setVisible(false); - acceptsFileLocations.setEnabled(false); + if (selected == DataTypes.ONTOLOGY_TERM) { + // show preferred ontology source box + preferredOntologySource.setVisible(true); + listDataSourceCont.setVisible(false); - } - } + defaultValStd.setText(""); - if (event.getSource() == isInputFormatted) { - inputFormatCont.setVisible(isInputFormatted.isSelected()); - } + // hide default value input + defaultValContStd.setVisible(false); + defaultValContBool.setVisible(false); + usesTemplateForWizard.setVisible(false); + wizardTemplatePanel.setVisible(false); - if (event.getSource() == usesTemplateForWizard) { - wizardTemplatePanel.setVisible(usesTemplateForWizard.isSelected()); - } - try { - saveFieldObject(); - } catch (DataNotCompleteException e) { - e.printStackTrace(); + // hide all options for length and regular expressions + isInputFormatted.setVisible(false); + isInputFormatted.setSelected(false); + inputFormatCont.setVisible(false); + acceptsFileLocations.setEnabled(false); + } } @@ -994,6 +992,8 @@ public void saveFieldObject() throws DataNotCompleteException { tfo.setFieldName(fieldName.getText()); tfo.setDescription(description.getText()); + System.out.println("**** DATATYPE = " + datatype.getSelectedItem().toString()); + tfo.setDatatype(DataTypes.resolveDataType(datatype.getSelectedItem().toString())); tfo.setDefaultVal(defaultValAsString); tfo.setRequired(required.isSelected());