diff options
Diffstat (limited to 'source/com/c2kernel/gui/data/NodeItem.java')
| -rwxr-xr-x | source/com/c2kernel/gui/data/NodeItem.java | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/source/com/c2kernel/gui/data/NodeItem.java b/source/com/c2kernel/gui/data/NodeItem.java new file mode 100755 index 0000000..410f13a --- /dev/null +++ b/source/com/c2kernel/gui/data/NodeItem.java @@ -0,0 +1,110 @@ +package com.c2kernel.gui.data;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.StringTokenizer;
+
+import javax.swing.JMenuItem;
+import javax.swing.JPopupMenu;
+
+import com.c2kernel.entity.agent.Job;
+import com.c2kernel.entity.proxy.ItemProxy;
+import com.c2kernel.gui.EntityDetails;
+import com.c2kernel.gui.EntityTabManager;
+import com.c2kernel.gui.MainFrame;
+import com.c2kernel.lookup.Path;
+import com.c2kernel.persistency.ClusterStorage;
+import com.c2kernel.utils.Logger;
+
+/**
+ * Structure for Item presence on the tree and ItemDetails boxes. Created by NodeFactory.
+ * @author $Author: abranson $
+ * @version $Version$
+ */
+public class NodeItem extends NodeEntity {
+
+ public NodeItem(Path path, EntityTabManager desktop) {
+ super(path, desktop);
+ try {
+ makeExpandable();
+ } catch (Exception e) {
+ Logger.error(e);
+ }
+ }
+
+ public void loadChildren() {
+ try {
+ String collections = myEntity.queryData("Collection/all");
+ StringTokenizer tok = new StringTokenizer(collections, ",");
+ while (tok.hasMoreTokens()) {
+ NodeCollection newCollection = new NodeCollection((ItemProxy)myEntity, tok.nextToken(), desktop);
+ add(newCollection);
+ }
+ end(false);
+ } catch (Exception e) {
+ Logger.error(e);
+ }
+ }
+
+ public JPopupMenu getPopupMenu() {
+ JPopupMenu popup = super.getPopupMenu();
+ popup.addSeparator();
+ try {
+ ArrayList jobList = ((ItemProxy)myEntity).getJobList(MainFrame.userAgent);
+ ArrayList already = new ArrayList();
+ if (jobList.size() > 0) {
+ for (Iterator e = jobList.iterator(); e.hasNext();) {
+ Job thisJob = (Job)e.next();
+ String stepName = thisJob.getStepName();
+ if (already.contains(stepName))
+ continue;
+ already.add(stepName);
+ JMenuItem menuItem = new JMenuItem(stepName);
+ menuItem.setActionCommand(stepName);
+ menuItem.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ execute(e.getActionCommand());
+ }
+ });
+ popup.add(menuItem);
+
+ }
+ }
+ else {
+ JMenuItem noAct = new JMenuItem("No activities");
+ noAct.setEnabled(false);
+ popup.add(noAct);
+ }
+ } catch (Exception ex) {
+ JMenuItem error = new JMenuItem("Error querying jobs");
+ error.setEnabled(false);
+ popup.add(error);
+ }
+
+ return popup;
+ }
+
+ public void execute(String stepName) {
+ EntityDetails thisDetail = desktop.add(this);
+ thisDetail.runCommand("Execution", stepName);
+ }
+
+ public ArrayList getTabs() {
+
+ ArrayList requiredTabs = super.getTabs();
+ requiredTabs.add("Properties");
+ try {
+ String collNames = myEntity.queryData(ClusterStorage.COLLECTION+"/all");
+ if (collNames.length() > 0)
+ requiredTabs.add("Collection");
+ } catch (Exception e) { }
+ requiredTabs.add("Execution");
+ requiredTabs.add("History");
+ requiredTabs.add("Viewpoint");
+ requiredTabs.add("Workflow");
+ return requiredTabs;
+
+ }
+}
|
