⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmlsimpletablepanel.java

📁 jawe的最新版本,基于Java的图形化工作流编辑器。图形化工作流编辑器 。使用JAVA语言开发
💻 JAVA
字号:
package org.enhydra.jawe.base.panel.panels;import java.awt.Color;import java.awt.Dimension;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.Vector;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.ListSelectionModel;import javax.swing.table.DefaultTableModel;import javax.swing.table.TableColumn;import org.enhydra.jawe.base.panel.PanelContainer;import org.enhydra.jawe.base.panel.PanelSettings;import org.enhydra.shark.xpdl.XMLCollection;import org.enhydra.shark.xpdl.XMLComplexElement;import org.enhydra.shark.xpdl.XMLElement;/** * Creates a table panel. * @author Sasa Bojanic * @author Zoran Milakovic * @author Miroslav Popov */public class XMLSimpleTablePanel extends XMLBasicPanel {   protected static Dimension miniTableDimension = new Dimension(450, 125);   protected static Dimension smallTableDimension = new Dimension(450, 200);   protected static Dimension mediumTableDimension = new Dimension(550, 200);   protected static Dimension largeTableDimension = new Dimension(650, 200);   protected JTable allItems;   protected Vector columnNames;   protected List columnsToShow;   public XMLSimpleTablePanel(         PanelContainer pc,         XMLCollection myOwner,         List columnsToShow,         List elementsToShow,         String title,         boolean hasBorder,         boolean hasEmptyBorder,         boolean automaticWidth   ) {      super(pc,myOwner, title, true, hasBorder, hasEmptyBorder);      columnNames = getColumnNames(columnsToShow);      this.columnsToShow = columnsToShow;      allItems = new JTable(new Vector(), columnNames) {            public boolean isCellEditable(int row, int col) {               return false;            }         };      Color bkgCol=new Color(245,245,245);      if (pc.getSettings() instanceof PanelSettings) {         bkgCol=((PanelSettings)pc.getSettings()).getBackgroundColor();      }      allItems.setBackground(bkgCol);            setupTable(automaticWidth);      fillTableContent(elementsToShow);      add(createScrollPane());   }   public JTable getTable() {      return allItems;   }   public XMLElement getSelectedElement() {      int row = allItems.getSelectedRow();      if (row >= 0) {         return (XMLElement) allItems.getValueAt(row, 0);      }      return null;   }   public void addRow(XMLElement e) {      int rowpos = allItems.getRowCount();      DefaultTableModel dtm = (DefaultTableModel) allItems.getModel();      Vector v = getRow(e);      dtm.insertRow(rowpos, v);   }   public void removeRow (XMLElement e) {      int row=getElementRow(e);      if (row>=0) {         DefaultTableModel dtm = (DefaultTableModel) allItems.getModel();         dtm.removeRow(row);      }   }   public List getElements () {      List els=new ArrayList();      for (int i = 0; i < allItems.getRowCount(); i++) {         els.add(allItems.getValueAt(i, 0));      }      return els;   }   protected Vector getColumnNames(List columnsToShow) {      // creating a table which do not allow cell editing      Vector cnames = new Vector();      cnames.add("Object");      XMLElement cel = ((XMLCollection) getOwner()).generateNewElement();      if (cel instanceof XMLComplexElement) {         Iterator it = columnsToShow.iterator();         while (it.hasNext()) {            String elemName = (String) it.next();            XMLElement el = ((XMLComplexElement) cel).get(elemName);            if (el != null) {               cnames.add(pc.getLabelGenerator().getLabel(el));            } else {               it.remove();            }         }      } else {         cnames.add(pc.getLabelGenerator().getLabel(cel));      }      return cnames;   }   protected void setupTable(boolean automaticWidth) {      TableColumn column;      // setting the first column (object column) to be invisible      column = allItems.getColumnModel().getColumn(0);      column.setMinWidth(0);      column.setMaxWidth(0);      column.setPreferredWidth(0);      column.setResizable(false);      // setting fields that will not be displayed within the table      // setting some table properties      allItems.setColumnSelectionAllowed(false);      allItems.setRowSelectionAllowed(true);      allItems.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);      allItems.getTableHeader().setReorderingAllowed(false);      Dimension tDim;      int noOfVisibleColumns = columnNames.size() - 1;      if (noOfVisibleColumns <= 3) {         tDim = new Dimension(smallTableDimension);      } else if (noOfVisibleColumns <= 5) {         tDim = new Dimension(mediumTableDimension);      } else {         tDim = new Dimension(largeTableDimension);      }      if (automaticWidth) {         tDim.width = allItems.getPreferredScrollableViewportSize().width;      }      allItems.setPreferredScrollableViewportSize(new Dimension(tDim));   }   protected void fillTableContent(List elementsToShow) {      DefaultTableModel dtm = (DefaultTableModel) allItems.getModel();      Iterator it = elementsToShow.iterator();      while (it.hasNext()) {         XMLElement elem = (XMLElement) it.next();         Vector v = getRow(elem);         dtm.addRow(v);      }   }   protected Vector getRow(XMLElement elem) {      Vector v = new Vector();      if (elem instanceof XMLComplexElement) {         Iterator itAllElems = columnsToShow.iterator();         v = new Vector();         XMLComplexElement cmel=(XMLComplexElement) elem;         while (itAllElems.hasNext()) {            String elName=(String)itAllElems.next();            XMLElement el = cmel.get(elName);            if (el!=null) {               v.add(new XMLElementView(pc,el, XMLElementView.TOVALUE));            }         }      } else {         v.add(new XMLElementView(pc,elem, XMLElementView.TOVALUE));      }      v.add(0, elem);      return v;   }   protected JScrollPane createScrollPane() {      // creates panel      JScrollPane allItemsPane = new JScrollPane();      allItemsPane.setViewportView(allItems);      return allItemsPane;   }   protected int getElementRow(XMLElement el) {      int row = -1;      for (int i = 0; i < allItems.getRowCount(); i++) {         XMLElement toCompare = (XMLElement) allItems.getValueAt(i, 0);         if (el==toCompare) {            row = i;            break;         }      }      return row;   }   public void cleanup () {   }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -