Merge branch 'README' into ui-activities-1.5
diff --git a/pom.xml b/pom.xml
index 76ecb0c..fea5d8a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>net.sf.taverna.t2</groupId>
<artifactId>ui-activities</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.5</version>
</parent>
<groupId>net.sf.taverna.t2.ui-activities</groupId>
<artifactId>stringconstant-activity-ui</artifactId>
diff --git a/src/main/java/net/sf/taverna/t2/activities/stringconstant/actions/StringConstantActivityConfigurationAction.java b/src/main/java/net/sf/taverna/t2/activities/stringconstant/actions/StringConstantActivityConfigurationAction.java
index d7cb2f2..d43239c 100644
--- a/src/main/java/net/sf/taverna/t2/activities/stringconstant/actions/StringConstantActivityConfigurationAction.java
+++ b/src/main/java/net/sf/taverna/t2/activities/stringconstant/actions/StringConstantActivityConfigurationAction.java
@@ -24,15 +24,12 @@
import java.awt.event.ActionEvent;
import javax.swing.Action;
-import javax.swing.JOptionPane;
import net.sf.taverna.t2.activities.stringconstant.StringConstantActivity;
import net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean;
-import net.sf.taverna.t2.activities.stringconstant.servicedescriptions.StringConstantActivityIcon;
-import net.sf.taverna.t2.workbench.file.FileManager;
+import net.sf.taverna.t2.activities.stringconstant.views.StringConstantConfigView;
import net.sf.taverna.t2.workbench.ui.actions.activity.ActivityConfigurationAction;
import net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ActivityConfigurationDialog;
-import net.sf.taverna.t2.workflowmodel.Dataflow;
public class StringConstantActivityConfigurationAction extends
ActivityConfigurationAction<StringConstantActivity, StringConstantConfigurationBean> {
@@ -49,23 +46,17 @@
}
public void actionPerformed(ActionEvent e) {
- StringConstantConfigurationBean bean = new StringConstantConfigurationBean();
- String value = getActivity().getConfiguration().getValue();
- Dataflow owningDataflow = FileManager.getInstance()
- .getCurrentDataflow();
-
- String newValue =
- (String) JOptionPane.showInputDialog(owner,
- "Enter value",
- ActivityConfigurationDialog.getRelativeName(owningDataflow, activity),
- JOptionPane.QUESTION_MESSAGE,
- StringConstantActivityIcon.getStringConstantIcon(),
- null,
- value);
- if (newValue!=null) {
- bean.setValue(newValue);
- ActivityConfigurationDialog.configureActivityStatic(owningDataflow, activity, bean);
+ ActivityConfigurationDialog currentDialog = ActivityConfigurationAction.getDialog(getActivity());
+ if (currentDialog != null) {
+ currentDialog.toFront();
+ return;
}
+ final StringConstantConfigView stringConstantConfigView = new StringConstantConfigView((StringConstantActivity)getActivity());
+ final ActivityConfigurationDialog<StringConstantActivity, StringConstantConfigurationBean> dialog =
+ new ActivityConfigurationDialog<StringConstantActivity, StringConstantConfigurationBean>(getActivity(), stringConstantConfigView);
+
+ ActivityConfigurationAction.setDialog(getActivity(), dialog);
+
}
}
diff --git a/src/main/java/net/sf/taverna/t2/activities/stringconstant/menu/AddStringConstantTemplateAction.java b/src/main/java/net/sf/taverna/t2/activities/stringconstant/menu/AddStringConstantTemplateAction.java
index e34767a..4bdbd85 100644
--- a/src/main/java/net/sf/taverna/t2/activities/stringconstant/menu/AddStringConstantTemplateAction.java
+++ b/src/main/java/net/sf/taverna/t2/activities/stringconstant/menu/AddStringConstantTemplateAction.java
@@ -51,7 +51,7 @@
private static Logger logger = Logger.getLogger(AddStringConstantTemplateAction.class);
public AddStringConstantTemplateAction(){
- super(insertSection, 70);
+ super(insertSection, 800);
}
@Override
@@ -62,7 +62,7 @@
@Override
protected Action createAction() {
- AbstractAction action = new AbstractAction("String constant", ActivityIconManager.getInstance()
+ AbstractAction action = new AbstractAction("Text constant", ActivityIconManager.getInstance()
.iconForActivity(new StringConstantActivity())){
public void actionPerformed(ActionEvent e) {
diff --git a/src/main/java/net/sf/taverna/t2/activities/stringconstant/menu/AddStringConstantTemplateMenuAction.java b/src/main/java/net/sf/taverna/t2/activities/stringconstant/menu/AddStringConstantTemplateMenuAction.java
index fd76493..2e73317 100644
--- a/src/main/java/net/sf/taverna/t2/activities/stringconstant/menu/AddStringConstantTemplateMenuAction.java
+++ b/src/main/java/net/sf/taverna/t2/activities/stringconstant/menu/AddStringConstantTemplateMenuAction.java
@@ -52,7 +52,7 @@
@SuppressWarnings("serial")
public class AddStringConstantTemplateMenuAction extends AbstractMenuAction {
- private static final String ADD_STRING_CONSTANT = "String constant";
+ private static final String ADD_STRING_CONSTANT = "Text constant";
private static final URI ADD_STRING_CONSTANT_URI = URI
.create("http://taverna.sf.net/2008/t2workbench/menu#graphMenuAddStringConstant");
@@ -60,7 +60,7 @@
private static Logger logger = Logger.getLogger(AddStringConstantTemplateMenuAction.class);
public AddStringConstantTemplateMenuAction(){
- super(InsertMenu.INSERT, 25, ADD_STRING_CONSTANT_URI);
+ super(InsertMenu.INSERT, 800, ADD_STRING_CONSTANT_URI);
}
@Override
diff --git a/src/main/java/net/sf/taverna/t2/activities/stringconstant/servicedescriptions/StringConstantTemplateService.java b/src/main/java/net/sf/taverna/t2/activities/stringconstant/servicedescriptions/StringConstantTemplateService.java
index 13422b1..f5d432f 100644
--- a/src/main/java/net/sf/taverna/t2/activities/stringconstant/servicedescriptions/StringConstantTemplateService.java
+++ b/src/main/java/net/sf/taverna/t2/activities/stringconstant/servicedescriptions/StringConstantTemplateService.java
@@ -31,7 +31,9 @@
public class StringConstantTemplateService extends AbstractTemplateService<StringConstantConfigurationBean>{
- private static final String STRINGCONSTANT = "String constant";
+ public static final String DEFAULT_VALUE = "Add your own value here";
+
+ private static final String STRINGCONSTANT = "Text constant";
private static final URI providerId = URI
.create("http://taverna.sf.net/2010/service-provider/stringconstant");
@@ -44,7 +46,7 @@
@Override
public StringConstantConfigurationBean getActivityConfiguration() {
StringConstantConfigurationBean stringConstantConfigurationBean = new StringConstantConfigurationBean();
- stringConstantConfigurationBean.setValue("Add your own value here");
+ stringConstantConfigurationBean.setValue(DEFAULT_VALUE);
return stringConstantConfigurationBean;
}
diff --git a/src/main/java/net/sf/taverna/t2/activities/stringconstant/views/StringConstantActivityContextualView.java b/src/main/java/net/sf/taverna/t2/activities/stringconstant/views/StringConstantActivityContextualView.java
index 5502e39..74c2b21 100644
--- a/src/main/java/net/sf/taverna/t2/activities/stringconstant/views/StringConstantActivityContextualView.java
+++ b/src/main/java/net/sf/taverna/t2/activities/stringconstant/views/StringConstantActivityContextualView.java
@@ -24,6 +24,9 @@
import javax.swing.Action;
+import org.apache.commons.lang.StringEscapeUtils;
+import org.apache.commons.lang.StringUtils;
+
import net.sf.taverna.t2.activities.stringconstant.StringConstantActivity;
import net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean;
import net.sf.taverna.t2.activities.stringconstant.actions.StringConstantActivityConfigurationAction;
@@ -31,6 +34,8 @@
import net.sf.taverna.t2.workflowmodel.processor.activity.Activity;
public class StringConstantActivityContextualView extends HTMLBasedActivityContextualView<StringConstantConfigurationBean> {
+
+ private static int MAX_LENGTH=100;
private static final long serialVersionUID = -553974544001808511L;
@@ -40,13 +45,15 @@
@Override
public String getViewTitle() {
- return "String constant";
+ return "Text constant";
}
@Override
protected String getRawTableRowsHtml() {
- String html = "<tr><td>Value</td><td>"+getConfigBean().getValue()+"</td></tr>";
+ String v = StringUtils.abbreviate(getConfigBean().getValue(), MAX_LENGTH);
+ v = StringEscapeUtils.escapeHtml(v);
+ String html = "<tr><td>Value</td><td>"+v+"</td></tr>";
return html;
}
diff --git a/src/main/java/net/sf/taverna/t2/activities/stringconstant/views/StringConstantConfigView.java b/src/main/java/net/sf/taverna/t2/activities/stringconstant/views/StringConstantConfigView.java
new file mode 100644
index 0000000..2aaad48
--- /dev/null
+++ b/src/main/java/net/sf/taverna/t2/activities/stringconstant/views/StringConstantConfigView.java
@@ -0,0 +1,212 @@
+/**
+ *
+ */
+package net.sf.taverna.t2.activities.stringconstant.views;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.Font;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.Collections;
+
+import javax.help.CSH;
+import javax.swing.JButton;
+import javax.swing.JComponent;
+import javax.swing.JEditorPane;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JTextPane;
+import javax.swing.event.AncestorEvent;
+import javax.swing.event.AncestorListener;
+
+import net.sf.taverna.t2.activities.stringconstant.StringConstantActivity;
+import net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean;
+import net.sf.taverna.t2.activities.stringconstant.servicedescriptions.StringConstantTemplateService;
+import net.sf.taverna.t2.lang.ui.FileTools;
+import net.sf.taverna.t2.lang.ui.KeywordDocument;
+import net.sf.taverna.t2.lang.ui.LineEnabledTextPanel;
+import net.sf.taverna.t2.lang.ui.LinePainter;
+import net.sf.taverna.t2.lang.ui.NoWrapEditorKit;
+import net.sf.taverna.t2.visit.VisitReport;
+import net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ActivityConfigurationPanel;
+import net.sf.taverna.t2.workflowmodel.health.HealthCheck;
+import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityConfigurationException;
+
+/**
+ * @author alanrw
+ *
+ */
+public class StringConstantConfigView extends ActivityConfigurationPanel<StringConstantActivity, StringConstantConfigurationBean> {
+
+ /** The configuration bean used to configure the activity */
+ private StringConstantConfigurationBean configuration;
+
+ /** The text */
+ private JEditorPane scriptTextArea;
+
+ private StringConstantActivity activity;
+
+ private static final Color LINE_COLOR = new Color(225,225,225);
+
+ public StringConstantConfigView(StringConstantActivity activity) {
+ this.activity = activity;
+ setLayout(new GridBagLayout());
+ initialise();
+ this.addAncestorListener(new AncestorListener() {
+
+ @Override
+ public void ancestorAdded(AncestorEvent event) {
+ StringConstantConfigView.this.whenOpened();
+ }
+
+ @Override
+ public void ancestorMoved(AncestorEvent event) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void ancestorRemoved(AncestorEvent event) {
+ // TODO Auto-generated method stub
+
+ }});
+ }
+
+ public void whenOpened() {
+ scriptTextArea.requestFocus();
+ if (scriptTextArea.getText().equals(StringConstantTemplateService.DEFAULT_VALUE)) {
+ scriptTextArea.selectAll();
+ }
+ }
+
+ private void initialise() {
+ CSH
+ .setHelpIDString(
+ this,
+ "net.sf.taverna.t2.activities.stringconstant.views.StringConstantConfigView");
+ configuration = activity.getConfiguration();
+
+ setBorder(javax.swing.BorderFactory.createTitledBorder(null, null,
+ javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
+ javax.swing.border.TitledBorder.DEFAULT_POSITION,
+ new java.awt.Font("Lucida Grande", 1, 12)));
+
+ JPanel scriptEditPanel = new JPanel(new BorderLayout());
+
+ scriptTextArea = new JTextPane();
+ new LinePainter(scriptTextArea, LINE_COLOR);
+
+ // NOTE: Due to T2-1145 - always set editor kit BEFORE setDocument
+ scriptTextArea.setEditorKit( new NoWrapEditorKit() );
+ scriptTextArea.setFont(new Font("Monospaced",Font.PLAIN,14));
+ scriptTextArea.setText(configuration.getValue());
+ scriptTextArea.setCaretPosition(0);
+ scriptTextArea.setPreferredSize(new Dimension(200, 100));
+
+ scriptEditPanel.add(new LineEnabledTextPanel(scriptTextArea), BorderLayout.CENTER);
+
+ GridBagConstraints outerConstraint = new GridBagConstraints();
+ outerConstraint.anchor = GridBagConstraints.FIRST_LINE_START;
+ outerConstraint.gridx = 0;
+ outerConstraint.gridy = 0;
+
+ outerConstraint.fill = GridBagConstraints.BOTH;
+ outerConstraint.weighty = 0.1;
+ outerConstraint.weightx = 0.1;
+ add(scriptEditPanel, outerConstraint);
+
+ JButton loadScriptButton = new JButton("Load text");
+ loadScriptButton.setToolTipText("Load text from a file");
+ loadScriptButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ String newScript = FileTools.readStringFromFile(StringConstantConfigView.this, "Load text", ".txt");
+ if (newScript != null) {
+ scriptTextArea.setText(newScript);
+ scriptTextArea.setCaretPosition(0);
+ }
+ }
+ });
+
+ JButton saveRScriptButton = new JButton("Save text");
+ saveRScriptButton.setToolTipText("Save the text to a file");
+ saveRScriptButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ FileTools.saveStringToFile(StringConstantConfigView.this, "Save text", ".txt", scriptTextArea.getText());
+ }
+ });
+
+ JButton clearScriptButton = new JButton("Clear text");
+ clearScriptButton
+ .setToolTipText("Clear current text from the edit area");
+ clearScriptButton.addActionListener(new ActionListener() {
+
+ public void actionPerformed(ActionEvent e) {
+ cleaText();
+ }
+
+ });
+
+ JPanel buttonPanel = new JPanel();
+ buttonPanel.setLayout(new FlowLayout());
+ buttonPanel.add(loadScriptButton);
+ buttonPanel.add(saveRScriptButton);
+ buttonPanel.add(clearScriptButton);
+
+ scriptEditPanel.add(buttonPanel, BorderLayout.SOUTH);
+ setPreferredSize(new Dimension(600,500));
+ this.validate();
+
+ }
+
+ /**
+ * Method for clearing the script
+ *
+ */
+ private void cleaText() {
+ if (JOptionPane.showConfirmDialog(this,
+ "Do you really want to clear the text?",
+ "Clearing the script", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
+ scriptTextArea.setText("");
+ }
+
+ }
+
+
+ @Override
+ public boolean checkValues() {
+ return true;
+ }
+
+ @Override
+ public StringConstantConfigurationBean getConfiguration() {
+ return configuration;
+ }
+
+ @Override
+ public boolean isConfigurationChanged() {
+ return !scriptTextArea.getText().equals(configuration.getValue());
+ }
+
+ @Override
+ public void noteConfiguration() {
+ configuration = makeConfiguration();
+ }
+
+ private StringConstantConfigurationBean makeConfiguration() {
+ StringConstantConfigurationBean newConfig = new StringConstantConfigurationBean();
+ newConfig.setValue(scriptTextArea.getText());
+ return newConfig;
+ }
+
+ @Override
+ public void refreshConfiguration() {
+ // TODO Auto-generated method stub
+
+ }
+
+}