http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/f676ef35/ui/src/main/java/net/sf/taverna/t2/lang/ui/treetable/JTreeTable.java ---------------------------------------------------------------------- diff --git a/ui/src/main/java/net/sf/taverna/t2/lang/ui/treetable/JTreeTable.java b/ui/src/main/java/net/sf/taverna/t2/lang/ui/treetable/JTreeTable.java deleted file mode 100644 index 85d3577..0000000 --- a/ui/src/main/java/net/sf/taverna/t2/lang/ui/treetable/JTreeTable.java +++ /dev/null @@ -1,657 +0,0 @@ -/* - * @(#)JTreeTable.java 1.2 98/10/27 - * - * Copyright 1997, 1998 by Sun Microsystems, Inc., - * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A. - * All rights reserved. - * - * This software is the confidential and proprietary information - * of Sun Microsystems, Inc. ("Confidential Information"). You - * shall not disclose such Confidential Information and shall use - * it only in accordance with the terms of the license agreement - * you entered into with Sun. - */ -package net.sf.taverna.t2.lang.ui.treetable; - -import java.awt.Color; -import java.awt.Component; -import java.awt.Dimension; -import java.awt.Graphics; -import java.awt.Insets; -import java.awt.Point; -import java.awt.Rectangle; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.EventObject; - -import javax.swing.DefaultCellEditor; -import javax.swing.Icon; -import javax.swing.JLabel; -import javax.swing.JTable; -import javax.swing.JTextField; -import javax.swing.JTree; -import javax.swing.ListSelectionModel; -import javax.swing.LookAndFeel; -import javax.swing.UIManager; -import javax.swing.border.Border; -import javax.swing.event.ListSelectionEvent; -import javax.swing.event.ListSelectionListener; -import javax.swing.table.DefaultTableCellRenderer; -import javax.swing.table.TableCellRenderer; -import javax.swing.tree.DefaultTreeCellRenderer; -import javax.swing.tree.DefaultTreeSelectionModel; -import javax.swing.tree.TreeCellRenderer; -import javax.swing.tree.TreeModel; -import javax.swing.tree.TreePath; -import javax.swing.tree.TreeSelectionModel; - -/** - * This example shows how to create a simple JTreeTable component, by using a - * JTree as a renderer (and editor) for the cells in a particular column in the - * JTable. - * - * @version 1.2 10/27/98 - * - * @author Philip Milne - * @author Scott Violet - * @author Tom Oinn - */ -@SuppressWarnings("serial") -public class JTreeTable extends JTable { - /** A subclass of JTree. */ - protected TreeTableCellRenderer tree; - - - private static SimpleDateFormat ISO_8601_FORMAT = new SimpleDateFormat( - "yyyy-MM-dd HH:mm:ss"); - private static SimpleDateFormat TIME_FORMAT = new SimpleDateFormat( - "HH:mm:ss"); - - - public JTreeTable() { - super(); - } - - public JTreeTable(TreeTableModel treeTableModel) { - super(); - setModel(treeTableModel); - } - - public void setModel(TreeTableModel model) { - tree = new TreeTableCellRenderer(model); - super.setModel(new TreeTableModelAdapter(model, tree)); - - ListToTreeSelectionModelWrapper selectionWrapper = new ListToTreeSelectionModelWrapper(); - tree.setSelectionModel(selectionWrapper); - setSelectionModel(selectionWrapper.getListSelectionModel()); - - // Install the tree editor renderer and editor. - setDefaultRenderer(TreeTableModel.class, tree); - setDefaultRenderer(Date.class, new DateCellRenderer()); - setDefaultEditor(TreeTableModel.class, new TreeTableCellEditor()); - - // Show grid but only if Look and Feel is not Java 6's Nimbus - if (!UIManager.getLookAndFeel().getName().equals("Nimbus")){ - setShowGrid(true); - setGridColor(Color.LIGHT_GRAY); - } - else{ - setShowGrid(false); - } - - // No intercell spacing - setIntercellSpacing(new Dimension(0, 0)); - - // Add a mouse listener to forward events on to the tree. - // We need this as on MAC only double clicks seem to expand the tree. - addMouseListener(new MouseAdapter() { - public void mousePressed(MouseEvent e) { - - for (int counter = getColumnCount() - 1; counter >= 0; counter--) { - if (getColumnClass(counter) == TreeTableModel.class) { - MouseEvent me = (MouseEvent) e; - MouseEvent newME = new MouseEvent(tree, me.getID(), me - .getWhen(), me.getModifiers(), me.getX() - - getCellRect(0, counter, true).x, me.getY(), - me.getClickCount(), me.isPopupTrigger()); - if (me.getClickCount() == 1) { - tree.dispatchEvent(newME); - } - } - else{ - - } - } - } - }); - - // And update the height of the trees row to match that of - // the table. - - if (tree.getRowHeight() < 1) { - // Metal looks better like this. - setRowHeight(18); - } - - } - - /** - * Overridden to message super and forward the method to the tree. Since the - * tree is not actually in the component hierarchy it will never receive this - * unless we forward it in this manner. - */ - public void updateUI() { - super.updateUI(); - if (tree != null) { - tree.updateUI(); - } - // Use the tree's default foreground and background colors in the - // table. - LookAndFeel.installColorsAndFont(this, "Tree.background", - "Tree.foreground", "Tree.font"); - } - - /* - * Workaround for BasicTableUI anomaly. Make sure the UI never tries to - * paint the editor. The UI currently uses different techniques to paint the - * renderers and editors and overriding setBounds() below is not the right - * thing to do for an editor. Returning -1 for the editing row in this case, - * ensures the editor is never painted. - */ - public int getEditingRow() { - return (getColumnClass(editingColumn) == TreeTableModel.class) ? -1 - : editingRow; - } - - /** - * Returns the actual row that is editing as <code>getEditingRow</code> will - * always return -1. - */ - private int realEditingRow() { - return editingRow; - } - - /** - * This is overridden to invoke super's implementation, and then, if the - * receiver is editing a Tree column, the editor's bounds is reset. The - * reason we have to do this is because JTable doesn't think the table is - * being edited, as <code>getEditingRow</code> returns -1, and therefore - * doesn't automatically resize the editor for us. - */ - public void sizeColumnsToFit(int resizingColumn) { - super.sizeColumnsToFit(resizingColumn); - if (getEditingColumn() != -1 - && getColumnClass(editingColumn) == TreeTableModel.class) { - Rectangle cellRect = getCellRect(realEditingRow(), - getEditingColumn(), false); - Component component = getEditorComponent(); - component.setBounds(cellRect); - component.validate(); - } - } - - /** - * Overridden to pass the new rowHeight to the tree. - */ - public void setRowHeight(int rowHeight) { - super.setRowHeight(rowHeight); - if (tree != null && tree.getRowHeight() != rowHeight) { - tree.setRowHeight(getRowHeight()); - } - } - - /** - * Returns the tree that is being shared between the model. - */ - public JTree getTree() { - return tree; - } - - /** - * Overridden to invoke repaint for the particular location if the column - * contains the tree. This is done as the tree editor does not fill the - * bounds of the cell, we need the renderer to paint the tree in the - * background, and then draw the editor over it. - */ - public boolean editCellAt(int row, int column, EventObject e) { - boolean retValue = super.editCellAt(row, column, e); - if (retValue && getColumnClass(column) == TreeTableModel.class) { - repaint(getCellRect(row, column, false)); - } - return retValue; - } - - /** - * A TreeCellRenderer that displays a JTree. - */ - public class TreeTableCellRenderer extends JTree implements - TableCellRenderer { - /** Last table/tree row asked to renderer. */ - protected int visibleRow; - protected Border highlightBorder; - - public TreeTableCellRenderer(TreeModel model) { - super(model); - } - - /** - * updateUI is overridden to set the colors of the Tree's renderer to - * match that of the table. - */ - public void updateUI() { - super.updateUI(); - // Make the tree's cell renderer use the table's cell selection - // colors. - TreeCellRenderer tcr = getCellRenderer(); - if (tcr instanceof DefaultTreeCellRenderer) { - //DefaultTreeCellRenderer dtcr = ((DefaultTreeCellRenderer) tcr); - // For 1.1 uncomment this, 1.2 has a bug that will cause an - // exception to be thrown if the border selection color is - // null. - // dtcr.setBorderSelectionColor(null); - // dtcr.setTextSelectionColor(UIManager.getColor - // ("Table.selectionForeground")); - // dtcr.setBackgroundSelectionColor(UIManager.getColor - // ("Table.selectionBackground")); - } - } - - /** - * Sets the row height of the tree, and forwards the row height to the - * table. - */ - public void setRowHeight(int rowHeight) { - if (rowHeight > 0) { - super.setRowHeight(rowHeight); - if (JTreeTable.this != null - && JTreeTable.this.getRowHeight() != rowHeight) { - JTreeTable.this.setRowHeight(getRowHeight()); - } - } - } - - /** - * This is overridden to set the height to match that of the JTable. - */ - public void setBounds(int x, int y, int w, int h) { - super.setBounds(x, 0, w, JTreeTable.this.getHeight()); - } - - /** - * Subclassed to translate the graphics such that the last visible row - * will be drawn at 0,0. - */ - public void paint(Graphics g) { - g.translate(0, -visibleRow * getRowHeight()); - super.paint(g); - // Draw the Table border if we have focus. - if (highlightBorder != null) { - highlightBorder.paintBorder(this, g, 0, visibleRow - * getRowHeight(), getWidth(), getRowHeight()); - } - else{ - // Tree cell renderer get rid of the grid lines for some - // reason so we draw them here but only if Look and Feel - // is different from Java 6's Nimbus LaF - // as it completely ignores the grid lines - if (!UIManager.getLookAndFeel().getName().equals("Nimbus")){ - LinesBorder linesBorder = new LinesBorder(getGridColor(), - new Insets(0, 0, 1, 1)); - linesBorder - .paintBorder(this, g, 0, visibleRow * getRowHeight(), - getWidth(), getRowHeight()); - } - } - } - - /** - * TreeCellRenderer method. Overridden to update the visible row. - */ - public Component getTableCellRendererComponent(JTable table, - Object value, boolean isSelected, boolean hasFocus, int row, - int column) { - Color background; - Color foreground; - - if (isSelected) { - background = table.getSelectionBackground(); - foreground = table.getSelectionForeground(); - } else { - background = table.getBackground(); - foreground = table.getForeground(); - } - highlightBorder = null; - if (realEditingRow() == row && getEditingColumn() == column) { - // background = UIManager.getColor("Table.focusCellBackground"); - // foreground = UIManager.getColor("Table.focusCellForeground"); - } else if (hasFocus) { - if (isSelected) { - highlightBorder = UIManager.getBorder("Table.focusSelectedCellHighlightBorder"); - } - else{ - highlightBorder = UIManager.getBorder("Table.focusCellHighlightBorder"); - } - if (isCellEditable(row, column)) { - // background = UIManager.getColor - // ("Table.focusCellBackground"); - background = table.getSelectionBackground(); - foreground = table.getSelectionForeground(); - } - } - - visibleRow = row; - setBackground(background); - - TreeCellRenderer tcr = getCellRenderer(); - if (tcr instanceof DefaultTreeCellRenderer) { - DefaultTreeCellRenderer dtcr = ((DefaultTreeCellRenderer) tcr); - if (isSelected) { - dtcr.setTextSelectionColor(foreground); - dtcr.setBackgroundSelectionColor(background); - } else { - dtcr.setTextNonSelectionColor(foreground); - dtcr.setBackgroundNonSelectionColor(background); - } - } - return this; - } - - } - - public static String formatDate(Date date) { - final Date midnight = new Date(); - midnight.setHours(0); - midnight.setMinutes(0); - midnight.setSeconds(0); - SimpleDateFormat format; - if (date.before(midnight)) { - // FULL DATE - format = ISO_8601_FORMAT; - } else { - format = TIME_FORMAT; - } - final String formatted = format.format(date); - return formatted; - } - - /** - * A TreeCellRenderer that displays a date in a "yyyy-MM-dd HH:mm:ss" - * format. - */ - public class DateCellRenderer extends DefaultTableCellRenderer { - /** Last table/tree row asked to renderer. */ - protected int visibleRow; - protected Border highlightBorder; - - public DateCellRenderer() { - setOpaque(true); - } - - public Component getTableCellRendererComponent(JTable table, - Object value, boolean isSelected, boolean hasFocus, int row, - int column) { - super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); - - if (isSelected) { -// this.setBackground(table.getSelectionBackground()); -// this.setForeground(table.getSelectionForeground()); - } else { - /*this.setBackground(table.getBackground()); - this.setForeground(table.getForeground());*/ - } - - - //dtcr.setBorderSelectionColor(null); - // dtcr.setTextSelectionColor(UIManager.getColor - // ("Table.selectionForeground")); - // dtcr.setBackgroundSelectionColor(UIManager.getColor - // ("Table.selectionBackground")); - - - - Date date = (Date) ((TreeTableModelAdapter) getModel()).getValueAt( - row, column); - if (date != null) { - setText(formatDate(date)); - } else { - setText(null); - } - return this; - } - - } - - /** - * TreeTableCellEditor implementation. Component returned is the JTree. - */ - public class TreeTableCellEditor extends DefaultCellEditor { - public TreeTableCellEditor() { - super(new TreeTableTextField()); - } - - public Component getTableCellEditorComponent(JTable table, - Object value, boolean isSelected, int r, int c) { - Component component = super.getTableCellEditorComponent(table, - value, isSelected, r, c); - JTree t = getTree(); - boolean rv = t.isRootVisible(); - int offsetRow = rv ? r : r - 1; - Rectangle bounds = t.getRowBounds(offsetRow); - int offset = bounds.x; - TreeCellRenderer tcr = t.getCellRenderer(); - if (tcr instanceof DefaultTreeCellRenderer) { - Object node = t.getPathForRow(offsetRow).getLastPathComponent(); - boolean isExpanded = t.isExpanded(t.getPathForRow(offsetRow)); - boolean isLeaf = t.getModel().isLeaf(node); - Component renderer = tcr.getTreeCellRendererComponent(t, node, - true, isExpanded, isLeaf, offsetRow, true); - Icon icon = ((JLabel) renderer).getIcon(); - // if (t.getModel().isLeaf(node)) - // icon = ((DefaultTreeCellRenderer)tcr).getLeafIcon(); - // else if (tree.isExpanded(offsetRow)) - // icon = ((DefaultTreeCellRenderer)tcr).getOpenIcon(); - // else - // icon = ((DefaultTreeCellRenderer)tcr).getClosedIcon(); - if (icon != null) { - offset += ((DefaultTreeCellRenderer) tcr).getIconTextGap() - + icon.getIconWidth(); - } - } - ((TreeTableTextField) getComponent()).offset = offset; - return component; - } - - // /** - // * This is overridden to forward the event to the tree. This will - // return - // * true if the click count >= 3, or the event is null. - // */ - // public boolean isCellEditable(EventObject e) { - // /** - // * if (e instanceof MouseEvent) { for (int counter = - // * getColumnCount() - 1; counter >= 0; counter--) { if - // * (getColumnClass(counter) == TreeTableModel.class) { MouseEvent me - // * = (MouseEvent)e; MouseEvent newME = new MouseEvent(tree, - // * me.getID(), me.getWhen(), me.getModifiers(), me.getX() - - // * getCellRect(0, counter, true).x, me.getY(), me.getClickCount(), - // * me.isPopupTrigger()); System.out.println(newME); - // * tree.dispatchEvent(newME); break; } } } - // */ - // if (e instanceof MouseEvent) { - // MouseEvent me = (MouseEvent) e; - // if (me.getClickCount() >= 3) { - // return true; - // } - // } - // if (e == null) { - // return true; - // } - // return false; - // } - - /** - * This is overridden to forward the event to the tree. This will return - * true if the click count >= 3, or the event is null. - */ - public boolean isCellEditable(EventObject e) { - // Edit on double click rather than the default triple - if (e instanceof MouseEvent) { - - MouseEvent me = (MouseEvent) e; - if (me.getClickCount() == 1 - && System.getProperty("os.name").equals("Mac OS X")) { - // Workaround for buggy tree table on OS X. Open/close the - // path - // on any click on the column (not just on the > icon) - for (int counter = getColumnCount() - 1; counter >= 0; counter--) { - if (getColumnClass(counter) == TreeTableModel.class) { - MouseEvent newME = new MouseEvent(tree, me.getID(), - me.getWhen(), me.getModifiers(), me.getX() - - getCellRect(0, counter, true).x, - me.getY(), me.getClickCount(), me - .isPopupTrigger()); - tree.dispatchEvent(newME); - - Point p = new Point(me.getX(), me.getY()); - int row = rowAtPoint(p); - int column = columnAtPoint(p); - if (column == 0) { - boolean isExpanded = tree.isExpanded(tree - .getPathForRow(row)); - if (isExpanded == false) { - tree.expandPath(tree.getPathForRow(row)); - } else { - tree.collapsePath(tree.getPathForRow(row)); - } - } - - break; - } - } - - } - /* - * if (me.getClickCount() >= 3) { return true; } - */// tree is no editable - } - if (e == null) { - return true; - } - return false; - } - - } - - /** - * Component used by TreeTableCellEditor. The only thing this does is to - * override the <code>reshape</code> method, and to ALWAYS make the x - * location be <code>offset</code>. - */ - public static class TreeTableTextField extends JTextField { - public int offset; - - public void setBounds(int x, int y, int w, int h) { - int newX = Math.max(x, offset); - super.setBounds(newX, y, w - (newX - x), h); - } - } - - /** - * ListToTreeSelectionModelWrapper extends DefaultTreeSelectionModel to - * listen for changes in the ListSelectionModel it maintains. Once a change - * in the ListSelectionModel happens, the paths are updated in the - * DefaultTreeSelectionModel. - */ - class ListToTreeSelectionModelWrapper extends DefaultTreeSelectionModel { - /** Set to true when we are updating the ListSelectionModel. */ - protected boolean updatingListSelectionModel; - - public ListToTreeSelectionModelWrapper() { - super(); - setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); - getListSelectionModel().addListSelectionListener( - createListSelectionListener()); - } - - /** - * Returns the list selection model. ListToTreeSelectionModelWrapper - * listens for changes to this model and updates the selected paths - * accordingly. - */ - ListSelectionModel getListSelectionModel() { - return listSelectionModel; - } - - /** - * This is overridden to set <code>updatingListSelectionModel</code> and - * message super. This is the only place DefaultTreeSelectionModel - * alters the ListSelectionModel. - */ - public void resetRowSelection() { - if (!updatingListSelectionModel) { - updatingListSelectionModel = true; - try { - super.resetRowSelection(); - } finally { - updatingListSelectionModel = false; - } - } - // Notice how we don't message super if - // updatingListSelectionModel is true. If - // updatingListSelectionModel is true, it implies the - // ListSelectionModel has already been updated and the - // paths are the only thing that needs to be updated. - } - - /** - * Creates and returns an instance of ListSelectionHandler. - */ - protected ListSelectionListener createListSelectionListener() { - return new ListSelectionHandler(); - } - - /** - * If <code>updatingListSelectionModel</code> is false, this will reset - * the selected paths from the selected rows in the list selection - * model. - */ - protected void updateSelectedPathsFromSelectedRows() { - if (!updatingListSelectionModel) { - updatingListSelectionModel = true; - try { - // This is way expensive, ListSelectionModel needs an - // enumerator for iterating. - int min = listSelectionModel.getMinSelectionIndex(); - int max = listSelectionModel.getMaxSelectionIndex(); - - clearSelection(); - if (min != -1 && max != -1) { - for (int counter = min; counter <= max; counter++) { - if (listSelectionModel.isSelectedIndex(counter)) { - TreePath selPath = tree.getPathForRow(counter); - - if (selPath != null) { - addSelectionPath(selPath); - } - } - } - } - } finally { - updatingListSelectionModel = false; - } - } - } - - /** - * Class responsible for calling updateSelectedPathsFromSelectedRows - * when the selection of the list change. - */ - class ListSelectionHandler implements ListSelectionListener { - public void valueChanged(ListSelectionEvent e) { - updateSelectedPathsFromSelectedRows(); - } - } - } -}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/f676ef35/ui/src/main/java/net/sf/taverna/t2/lang/ui/treetable/LinesBorder.java ---------------------------------------------------------------------- diff --git a/ui/src/main/java/net/sf/taverna/t2/lang/ui/treetable/LinesBorder.java b/ui/src/main/java/net/sf/taverna/t2/lang/ui/treetable/LinesBorder.java deleted file mode 100644 index 45ac3bb..0000000 --- a/ui/src/main/java/net/sf/taverna/t2/lang/ui/treetable/LinesBorder.java +++ /dev/null @@ -1,178 +0,0 @@ -/** - * Example from http://www.java2s.com/Code/Java/Swing-Components/CellBorderTableExample.htm - */ -package net.sf.taverna.t2.lang.ui.treetable; - -import java.awt.Color; -import java.awt.Component; -import java.awt.Graphics; -import java.awt.Insets; - -import javax.swing.SwingConstants; -import javax.swing.border.AbstractBorder; - -/** - * - * Line border that lets you control the colour and thickness of all four edges. Needed to fix the tree cell - * renderer in the JTreeTable that looked a bit 'naff' on Windows (i.e. Windows draws lines around table - * cells when default Look and Feel is in use and the tree cell renderer was not drawing lines.) - * - */ -@SuppressWarnings("serial") -public class LinesBorder extends AbstractBorder implements SwingConstants { - protected int northThickness; - - protected int southThickness; - - protected int eastThickness; - - protected int westThickness; - - protected Color northColor; - - protected Color southColor; - - protected Color eastColor; - - protected Color westColor; - - public LinesBorder(Color color) { - this(color, 1); - } - - public LinesBorder(Color color, int thickness) { - setColor(color); - setThickness(thickness); - } - - public LinesBorder(Color color, Insets insets) { - setColor(color); - setThickness(insets); - } - - public void paintBorder(Component c, Graphics g, int x, int y, int width, - int height) { - Color oldColor = g.getColor(); - - g.setColor(northColor); - for (int i = 0; i < northThickness; i++) { - g.drawLine(x, y + i, x + width - 1, y + i); - } - g.setColor(southColor); - for (int i = 0; i < southThickness; i++) { - g - .drawLine(x, y + height - i - 1, x + width - 1, y + height - - i - 1); - } - g.setColor(eastColor); - for (int i = 0; i < westThickness; i++) { - g.drawLine(x + i, y, x + i, y + height - 1); - } - g.setColor(westColor); - for (int i = 0; i < eastThickness; i++) { - g.drawLine(x + width - i - 1, y, x + width - i - 1, y + height - 1); - } - - g.setColor(oldColor); - } - - public Insets getBorderInsets(Component c) { - return new Insets(northThickness, westThickness, southThickness, - eastThickness); - } - - public Insets getBorderInsets(Component c, Insets insets) { - return new Insets(northThickness, westThickness, southThickness, - eastThickness); - } - - public boolean isBorderOpaque() { - return true; - } - - public void setColor(Color c) { - northColor = c; - southColor = c; - eastColor = c; - westColor = c; - } - - public void setColor(Color c, int direction) { - switch (direction) { - case NORTH: - northColor = c; - break; - case SOUTH: - southColor = c; - break; - case EAST: - eastColor = c; - break; - case WEST: - westColor = c; - break; - default: - } - } - - public void setThickness(int n) { - northThickness = n; - southThickness = n; - eastThickness = n; - westThickness = n; - } - - public void setThickness(Insets insets) { - northThickness = insets.top; - southThickness = insets.bottom; - eastThickness = insets.right; - westThickness = insets.left; - } - - public void setThickness(int n, int direction) { - switch (direction) { - case NORTH: - northThickness = n; - break; - case SOUTH: - southThickness = n; - break; - case EAST: - eastThickness = n; - break; - case WEST: - westThickness = n; - break; - default: - } - } - - public void append(LinesBorder b, boolean isReplace) { - if (isReplace) { - northThickness = b.northThickness; - southThickness = b.southThickness; - eastThickness = b.eastThickness; - westThickness = b.westThickness; - } else { - northThickness = Math.max(northThickness, b.northThickness); - southThickness = Math.max(southThickness, b.southThickness); - eastThickness = Math.max(eastThickness, b.eastThickness); - westThickness = Math.max(westThickness, b.westThickness); - } - } - - public void append(Insets insets, boolean isReplace) { - if (isReplace) { - northThickness = insets.top; - southThickness = insets.bottom; - eastThickness = insets.right; - westThickness = insets.left; - } else { - northThickness = Math.max(northThickness, insets.top); - southThickness = Math.max(southThickness, insets.bottom); - eastThickness = Math.max(eastThickness, insets.right); - westThickness = Math.max(westThickness, insets.left); - } - } - - } http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/f676ef35/ui/src/main/java/net/sf/taverna/t2/lang/ui/treetable/TreeTableModel.java ---------------------------------------------------------------------- diff --git a/ui/src/main/java/net/sf/taverna/t2/lang/ui/treetable/TreeTableModel.java b/ui/src/main/java/net/sf/taverna/t2/lang/ui/treetable/TreeTableModel.java deleted file mode 100644 index 36fa4fe..0000000 --- a/ui/src/main/java/net/sf/taverna/t2/lang/ui/treetable/TreeTableModel.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * TreeTableModel.java - * - * Copyright (c) 1998 Sun Microsystems, Inc. All Rights Reserved. - * - * This software is the confidential and proprietary information of Sun - * Microsystems, Inc. ("Confidential Information"). You shall not - * disclose such Confidential Information and shall use it only in - * accordance with the terms of the license agreement you entered into - * with Sun. - * - * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE - * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE - * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR - * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES - * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING - * THIS SOFTWARE OR ITS DERIVATIVES. - * - */ -package net.sf.taverna.t2.lang.ui.treetable; - -import javax.swing.tree.TreeModel; - -/** - * TreeTableModel is the model used by a JTreeTable. It extends TreeModel - * to add methods for getting inforamtion about the set of columns each - * node in the TreeTableModel may have. Each column, like a column in - * a TableModel, has a name and a type associated with it. Each node in - * the TreeTableModel can return a value for each of the columns and - * set that value if isCellEditable() returns true. - * - * @author Philip Milne - * @author Scott Violet - */ -public interface TreeTableModel extends TreeModel -{ - /** - * Returns the number ofs availible column. - */ - public int getColumnCount(); - - /** - * Returns the name for column number <code>column</code>. - */ - public String getColumnName(int column); - - /** - * Returns the type for column number <code>column</code>. - */ - public Class getColumnClass(int column); - - /** - * Returns the value to be displayed for node <code>node</code>, - * at column number <code>column</code>. - */ - public Object getValueAt(Object node, int column); - - /** - * Indicates whether the the value for node <code>node</code>, - * at column number <code>column</code> is editable. - */ - public boolean isCellEditable(Object node, int column); - - /** - * Sets the value for node <code>node</code>, - * at column number <code>column</code>. - */ - public void setValueAt(Object aValue, Object node, int column); -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/f676ef35/ui/src/main/java/net/sf/taverna/t2/lang/ui/treetable/TreeTableModelAdapter.java ---------------------------------------------------------------------- diff --git a/ui/src/main/java/net/sf/taverna/t2/lang/ui/treetable/TreeTableModelAdapter.java b/ui/src/main/java/net/sf/taverna/t2/lang/ui/treetable/TreeTableModelAdapter.java deleted file mode 100644 index a6cdd24..0000000 --- a/ui/src/main/java/net/sf/taverna/t2/lang/ui/treetable/TreeTableModelAdapter.java +++ /dev/null @@ -1,132 +0,0 @@ -/* - * @(#)TreeTableModelAdapter.java 1.2 98/10/27 - * - * Copyright 1997, 1998 by Sun Microsystems, Inc., - * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A. - * All rights reserved. - * - * This software is the confidential and proprietary information - * of Sun Microsystems, Inc. ("Confidential Information"). You - * shall not disclose such Confidential Information and shall use - * it only in accordance with the terms of the license agreement - * you entered into with Sun. - */ -package net.sf.taverna.t2.lang.ui.treetable; - -import javax.swing.JTree; -import javax.swing.SwingUtilities; -import javax.swing.event.TreeExpansionEvent; -import javax.swing.event.TreeExpansionListener; -import javax.swing.event.TreeModelEvent; -import javax.swing.event.TreeModelListener; -import javax.swing.table.AbstractTableModel; -import javax.swing.tree.TreePath; - -/** - * This is a wrapper class takes a TreeTableModel and implements - * the table model interface. The implementation is trivial, with - * all of the event dispatching support provided by the superclass: - * the AbstractTableModel. - * - * @version 1.2 10/27/98 - * - * @author Philip Milne - * @author Scott Violet - */ -@SuppressWarnings("serial") -public class TreeTableModelAdapter extends AbstractTableModel -{ - JTree tree; - TreeTableModel treeTableModel; - - public TreeTableModelAdapter(TreeTableModel treeTableModel, JTree tree) { - this.tree = tree; - this.treeTableModel = treeTableModel; - - tree.addTreeExpansionListener(new TreeExpansionListener() { - // Don't use fireTableRowsInserted() here; the selection model - // would get updated twice. - public void treeExpanded(TreeExpansionEvent event) { - fireTableDataChanged(); - } - public void treeCollapsed(TreeExpansionEvent event) { - fireTableDataChanged(); - } - }); - - // Install a TreeModelListener that can update the table when - // tree changes. We use delayedFireTableDataChanged as we can - // not be guaranteed the tree will have finished processing - // the event before us. - treeTableModel.addTreeModelListener(new TreeModelListener() { - public void treeNodesChanged(TreeModelEvent e) { - delayedFireTableDataChanged(); - } - - public void treeNodesInserted(TreeModelEvent e) { - delayedFireTableDataChanged(); - } - - public void treeNodesRemoved(TreeModelEvent e) { - delayedFireTableDataChanged(); - } - - public void treeStructureChanged(TreeModelEvent e) { - delayedFireTableDataChanged(); - } - }); - } - - // Wrappers, implementing TableModel interface. - - public int getColumnCount() { - return treeTableModel.getColumnCount(); - } - - public String getColumnName(int column) { - return treeTableModel.getColumnName(column); - } - - public Class getColumnClass(int column) { - return treeTableModel.getColumnClass(column); - } - - public int getRowCount() { - return tree.getRowCount(); - } - - protected Object nodeForRow(int row) { - TreePath treePath = tree.getPathForRow(row); - if (treePath == null) { - return null; - } - return treePath.getLastPathComponent(); - } - - public Object getValueAt(int row, int column) { - return treeTableModel.getValueAt(nodeForRow(row), column); - } - - public boolean isCellEditable(int row, int column) { - return treeTableModel.isCellEditable(nodeForRow(row), column); - } - - public void setValueAt(Object value, int row, int column) { - treeTableModel.setValueAt(value, nodeForRow(row), column); - } - - /** - * Invokes fireTableDataChanged after all the pending events have been - * processed. SwingUtilities.invokeLater is used to handle this. - */ - protected void delayedFireTableDataChanged() { - SwingUtilities.invokeLater(new Runnable() { - public void run() { - TreePath[] selected = tree.getSelectionPaths(); - fireTableDataChanged(); - tree.setSelectionPaths(selected); - } - }); - } -} - http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/f676ef35/ui/src/main/resources/net/sf/taverna/t2/lang/ui/icons/ok.png ---------------------------------------------------------------------- diff --git a/ui/src/main/resources/net/sf/taverna/t2/lang/ui/icons/ok.png b/ui/src/main/resources/net/sf/taverna/t2/lang/ui/icons/ok.png deleted file mode 100644 index ac479f2..0000000 Binary files a/ui/src/main/resources/net/sf/taverna/t2/lang/ui/icons/ok.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/f676ef35/ui/src/main/resources/net/sf/taverna/t2/lang/ui/icons/severe.png ---------------------------------------------------------------------- diff --git a/ui/src/main/resources/net/sf/taverna/t2/lang/ui/icons/severe.png b/ui/src/main/resources/net/sf/taverna/t2/lang/ui/icons/severe.png deleted file mode 100644 index a69364d..0000000 Binary files a/ui/src/main/resources/net/sf/taverna/t2/lang/ui/icons/severe.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/f676ef35/ui/src/main/resources/net/sf/taverna/t2/lang/ui/icons/warning.png ---------------------------------------------------------------------- diff --git a/ui/src/main/resources/net/sf/taverna/t2/lang/ui/icons/warning.png b/ui/src/main/resources/net/sf/taverna/t2/lang/ui/icons/warning.png deleted file mode 100644 index f09e60f..0000000 Binary files a/ui/src/main/resources/net/sf/taverna/t2/lang/ui/icons/warning.png and /dev/null differ
