Improve GisServiceDialog Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/commit/b3cc4b29 Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/tree/b3cc4b29 Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/diff/b3cc4b29
Branch: refs/heads/taverna2 Commit: b3cc4b292cb1b60d031374b586dc409010bfa21d Parents: 7322d0d Author: edikaradumi <[email protected]> Authored: Wed Aug 3 05:30:23 2016 +0100 Committer: edikaradumi <[email protected]> Committed: Wed Aug 3 05:30:23 2016 +0100 ---------------------------------------------------------------------- .../ui/serviceprovider/AddGisServiceDialog.java | 50 +++++++++++++++----- 1 file changed, 37 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/b3cc4b29/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/serviceprovider/AddGisServiceDialog.java ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/serviceprovider/AddGisServiceDialog.java b/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/serviceprovider/AddGisServiceDialog.java index 63eccf7..9d5bb44 100644 --- a/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/serviceprovider/AddGisServiceDialog.java +++ b/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/serviceprovider/AddGisServiceDialog.java @@ -41,8 +41,11 @@ import org.apache.taverna.gis.client.IGisClient; import net.sf.taverna.t2.workbench.helper.HelpEnabledDialog; @SuppressWarnings("serial") -public class AddGisServiceDialog extends HelpEnabledDialog { +public abstract class AddGisServiceDialog extends HelpEnabledDialog { + private final int CHECKBOX_COLUMN = 0; + private final int PROCESS_ID_COLUMN = 1; + private JTextField serviceLocationField; private TableRowSorter<DefaultTableModel> sorter; private JFilterTable processesTable; @@ -127,6 +130,7 @@ public class AddGisServiceDialog extends HelpEnabledDialog { servicePanel.add(serviceLocatitionLabel, gbc); serviceLocationField = new JTextField("http://somehost/service?"); + serviceLocationField.selectAll(); gbc.weighty = 0; gbc.weightx = 1; gbc.gridx = 0; @@ -306,7 +310,7 @@ public class AddGisServiceDialog extends HelpEnabledDialog { @Override public boolean isCellEditable(int row, int column) { // Only the first column - return column == 0; + return column == CHECKBOX_COLUMN; } }; @@ -316,8 +320,8 @@ public class AddGisServiceDialog extends HelpEnabledDialog { processesTable = new JFilterTable(model); processesTable.setRowSorter(sorter); - processesTable.getColumnModel().getColumn(0).setPreferredWidth(20); - processesTable.getColumnModel().getColumn(1).setPreferredWidth(250); + processesTable.getColumnModel().getColumn(CHECKBOX_COLUMN).setPreferredWidth(20); + processesTable.getColumnModel().getColumn(PROCESS_ID_COLUMN).setPreferredWidth(250); processesTable.setPreferredScrollableViewportSize(new Dimension(300, 100)); processesTable.setFillsViewportHeight(true); @@ -377,7 +381,7 @@ public class AddGisServiceDialog extends HelpEnabledDialog { private void checkAllProcesses(boolean value) { for (int i = 0; i < processesTable.getRowCount(); i++) - processesTable.getModel().setValueAt(value, i, 0); + processesTable.getModel().setValueAt(value, i, CHECKBOX_COLUMN); } private void addPressed() { @@ -398,6 +402,8 @@ public class AddGisServiceDialog extends HelpEnabledDialog { } } + addRegistry(serviceURL, getSelectedProcesses()); + } catch (Exception ex) { // anything failed JOptionPane.showMessageDialog(null, "Could not read the service definition from " @@ -411,19 +417,42 @@ public class AddGisServiceDialog extends HelpEnabledDialog { } }; }.start(); + closeDialog(); } + + protected abstract void addRegistry(String serviceURL, List<String> processIdentifiers); private void closeDialog() { setVisible(false); dispose(); } + private List<String> getSelectedProcesses() + { + List<String> result = new ArrayList<String>(); + + DefaultTableModel model = (DefaultTableModel) processesTable.getModel(); + + int rowNr = model.getRowCount(); + + for(int i=0; i<rowNr;i++) + { + if ((boolean) model.getValueAt(i, CHECKBOX_COLUMN)) + { + result.add((String) model.getValueAt(i, PROCESS_ID_COLUMN)); + } + } + + return result; + + } + private JTextField createFilterTextField() { final JTextField field = new JTextField(); - final int FILTER_COLUMN_INDEX = 1; + final int FILTER_COLUMN_INDEX = PROCESS_ID_COLUMN; field.getDocument().addDocumentListener(new DocumentListener() { @Override @@ -462,11 +491,8 @@ public class AddGisServiceDialog extends HelpEnabledDialog { private boolean isValidURL(String url) { - boolean result = true; - - url = url.trim(); - + if (url.length()<=0) return false; @@ -511,9 +537,7 @@ public class AddGisServiceDialog extends HelpEnabledDialog { private boolean isChecked; private String processID; - public ProcessTableRow() - { - + public ProcessTableRow() { } public ProcessTableRow(boolean isChecked, String processID)
