summaryrefslogtreecommitdiff
path: root/src/main/java/com/c2kernel/gui/tabs/JobListPane.java
diff options
context:
space:
mode:
authorAndrew Branson <andrew.branson@cern.ch>2012-06-26 12:41:56 +0200
committerAndrew Branson <andrew.branson@cern.ch>2012-06-26 12:41:56 +0200
commit6d8c74f97fe4289a984bdc6bd635c71653d5421c (patch)
tree35a028339a549d457bbf116a5614b6c59e850c1d /src/main/java/com/c2kernel/gui/tabs/JobListPane.java
parente18629474efa8848d07404c8c4131489a225fa59 (diff)
Refactored GUI into separate module
Diffstat (limited to 'src/main/java/com/c2kernel/gui/tabs/JobListPane.java')
-rw-r--r--src/main/java/com/c2kernel/gui/tabs/JobListPane.java312
1 files changed, 0 insertions, 312 deletions
diff --git a/src/main/java/com/c2kernel/gui/tabs/JobListPane.java b/src/main/java/com/c2kernel/gui/tabs/JobListPane.java
deleted file mode 100644
index 619a589..0000000
--- a/src/main/java/com/c2kernel/gui/tabs/JobListPane.java
+++ /dev/null
@@ -1,312 +0,0 @@
-/*
- * StatusPane.java
- *
- * Created on March 20, 2001, 3:30 PM
- */
-
-package com.c2kernel.gui.tabs;
-
-/**
- * @author abranson
- * @version
- */
-import java.awt.GridBagConstraints;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
-import java.util.Iterator;
-
-import javax.swing.Box;
-import javax.swing.JButton;
-import javax.swing.JOptionPane;
-import javax.swing.JScrollPane;
-import javax.swing.JTable;
-import javax.swing.table.AbstractTableModel;
-
-import com.c2kernel.common.ObjectNotFoundException;
-import com.c2kernel.entity.agent.Job;
-import com.c2kernel.entity.agent.JobList;
-import com.c2kernel.entity.proxy.EntityProxyObserver;
-import com.c2kernel.entity.proxy.MemberSubscription;
-import com.c2kernel.gui.MainFrame;
-import com.c2kernel.lifecycle.instance.stateMachine.Transitions;
-import com.c2kernel.persistency.ClusterStorage;
-import com.c2kernel.process.Gateway;
-import com.c2kernel.property.Property;
-import com.c2kernel.utils.Language;
-import com.c2kernel.utils.Logger;
-
-/**
- * Pane to display all work orders that this agent can execute, and activate
- * them on request from the user. Subscribes to NodeItem for WorkOrder objects.
- * @version $Revision: 1.4 $ $Date: 2004/10/21 08:02:21 $
- * @author $Author: abranson $
- */
-public class JobListPane extends EntityTabPane implements ActionListener, EntityProxyObserver<Job> {
-
- JobList joblist;
- JoblistTableModel model;
- JTable eventTable;
- JButton startButton = new JButton("<<");
- JButton prevButton = new JButton("<");
- JButton nextButton = new JButton(">");
- JButton endButton = new JButton(">>");
- public static final int SIZE = 30;
- int currentSize = SIZE;
-
- public JobListPane() {
- super("Job List", "Agent Job List");
- initPanel();
-
- // add buttons
- Box navBox = Box.createHorizontalBox();
- navBox.add(startButton); navBox.add(prevButton);
- navBox.add(nextButton); navBox.add(endButton);
-
- // setup buttons
- //startButton.setEnabled(false); nextButton.setEnabled(false);
- //prevButton.setEnabled(false); endButton.setEnabled(false);
- startButton.setActionCommand("start");
- startButton.addActionListener(this);
- prevButton.setActionCommand("prev");
- prevButton.addActionListener(this);
- nextButton.setActionCommand("next");
- nextButton.addActionListener(this);
- endButton.setActionCommand("end");
- endButton.addActionListener(this);
- getGridBagConstraints();
- c.gridx = 0; c.gridy = 1;
- c.anchor = GridBagConstraints.NORTHWEST;
- c.fill=GridBagConstraints.NONE;
- c.weightx=0; c.weighty=0;
- gridbag.setConstraints(navBox, c);
- add(navBox);
-
-
- // Create table
- eventTable = new JTable();
- JScrollPane eventScroll= new JScrollPane(eventTable);
- c.weightx = 1.0; c.weighty = 1.0;
- c.fill = GridBagConstraints.BOTH; c.gridy++;
- gridbag.setConstraints(eventScroll, c);
- add(eventScroll);
-
- // detect double clicked jobs
- eventTable.addMouseListener(new JobListMouseListener());
- }
-
- @Override
- public void reload() {
- joblist.clear();
- jumpToEnd();
- }
-
- @Override
- public void run() {
- Thread.currentThread().setName("Joblist Pane Builder");
- try {
- joblist = (JobList)sourceEntity.getEntity().getObject(ClusterStorage.JOB);
- sourceEntity.getEntity().subscribe(new MemberSubscription<Job>(this, ClusterStorage.JOB, false));
- } catch (ObjectNotFoundException e) {
- Logger.error(e);
- }
- model = new JoblistTableModel(joblist);
- eventTable.setModel(model);
- jumpToEnd();
- }
-
-
- public void jumpToEnd() {
- int lastEvent = joblist.getLastId();
- int firstEvent = 0; currentSize = SIZE;
- if (lastEvent > currentSize) firstEvent = lastEvent - currentSize + 1;
- if (lastEvent < currentSize) currentSize = lastEvent + 1;
- Logger.msg(5, "JobListPane.run() - init table start "+firstEvent+" for "+currentSize);
- model.setView(firstEvent, currentSize);
- }
-
- @Override
- public void add(Job contents) {
- reload();
- }
-
- @Override
- public void remove(String id) {
- reload();
- }
-
- @Override
- public void actionPerformed(ActionEvent e) {
- if (e.getActionCommand().equals("end")) {
- jumpToEnd();
- return;
- }
-
- int lastEvent = joblist.getLastId();
- int startEvent = model.getStartId();
- if (e.getActionCommand().equals("start")) {
- currentSize = SIZE;
- startEvent = 0;
- }
-
- else if (e.getActionCommand().equals("prev")) {
- currentSize = SIZE;
- startEvent-=currentSize;
- if (startEvent<0) startEvent = 0;
- }
- else if (e.getActionCommand().equals("next")) {
- currentSize = SIZE;
- startEvent+=currentSize;
- if (startEvent > lastEvent)
- startEvent = lastEvent - currentSize +1;
- }
- else { // unknown action
- return;
- }
-
- model.setView(startEvent, currentSize);
- }
-
- private class JoblistTableModel extends AbstractTableModel {
- Job[] job;
- Integer[] ids;
- String[] itemNames;
- int loaded = 0;
- int startId = 0;
-
- public JoblistTableModel(JobList joblist) {
- job = new Job[0];
- ids = new Integer[0];
- }
-
- public int getStartId() {
- return startId;
- }
-
- public void setView(int startId, int size) {
- job = new Job[size];
- ids = new Integer[size];
- itemNames = new String[size];
- this.startId = startId;
- int count = 0;
- for (Iterator<?> i = joblist.keySet().iterator(); i.hasNext();) {
- Integer thisJobId = new Integer((String)i.next());
- if (count >= startId) {
- int idx = count-startId;
- ids[idx] = thisJobId;
- job[idx] = joblist.getJob(thisJobId.intValue());
- itemNames[idx] = "Item Not Found";
- try {
- itemNames[idx] = ((Property)Gateway.getStorage().get(job[count-startId].getItemSysKey(), ClusterStorage.PROPERTY+"/Name", null)).getValue();
- } catch (Exception ex) {
- Logger.error(ex);
- }
-
- }
- count++;
- loaded = count-startId;
- if (count > (startId + size)) break;
- }
- fireTableStructureChanged();
- }
- /**
- * @see javax.swing.table.TableModel#getColumnClass(int)
- */
- @Override
- public Class<?> getColumnClass(int columnIndex) {
- switch(columnIndex) {
- case 0:
- return Integer.class;
- default:
- return String.class;
- }
- }
-
- /**
- * @see javax.swing.table.TableModel#getColumnCount()
- */
- @Override
- public int getColumnCount() {
- return 4;
- }
-
- /**
- * @see javax.swing.table.TableModel#getColumnName(int)
- */
- @Override
- public String getColumnName(int columnIndex) {
- switch(columnIndex) {
- case 0: return Language.translate("ID");
- case 1: return Language.translate("Subject");
- case 2: return Language.translate("Activity");
- case 3: return Language.translate("Transition");
- default: return "";
- }
- }
-
- /**
- * @see javax.swing.table.TableModel#getRowCount()
- */
- @Override
- public int getRowCount() {
- return loaded;
- }
-
- /**
- * @see javax.swing.table.TableModel#getValueAt(int, int)
- */
- @Override
- public Object getValueAt(int rowIndex, int columnIndex) {
- if (job.length <= rowIndex || job[rowIndex] == null)
- return "";
- try {
- switch (columnIndex) {
- case 0: return ids[rowIndex];
- case 1: return itemNames[rowIndex];
- case 2: return job[rowIndex].getStepName();
- case 3: return Transitions.getTransitionName(job[rowIndex].getPossibleTransition());
- default: return "";
- }
- } catch (Exception e) {
- return null;
- }
- }
-
- /**
- * @see javax.swing.table.TableModel#isCellEditable(int, int)
- */
- @Override
- public boolean isCellEditable(int rowIndex, int columnIndex) {
- return false;
- }
-
- public Job getJobAtRow(int rowIndex) {
- return job[rowIndex];
- }
-
- }
-
- private class JobListMouseListener extends MouseAdapter {
-
- @Override
- public void mouseClicked(MouseEvent e) {
- super.mouseClicked(e);
- if (e.getClickCount() == 2) {
- Job selectedJob = model.getJobAtRow(eventTable.getSelectedRow());
- try {
- MainFrame.itemFinder.pushNewKey(selectedJob.getItemProxy().getName());
- } catch (Exception ex) {
- Logger.error(ex);
- JOptionPane.showMessageDialog(null, "No Item Found", "Job references an unknown item", JOptionPane.ERROR_MESSAGE);
- }
- }
- }
- }
-
- @Override
- public void control(String control, String msg) {
- // TODO Auto-generated method stub
-
- }
-}