From: <sou...@us...> - 2006-03-03 23:15:11
|
Revision: 87 Author: soulcatcher Date: 2006-03-03 15:15:02 -0800 (Fri, 03 Mar 2006) ViewCVS: http://svn.sourceforge.net/pcgen/?rev=87&view=rev Log Message: ----------- Table Column stuff Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/gui/tabs/spells/InfoSpellBooks.java Added Paths: ----------- Trunk/pcgen/code/src/java/pcgen/gui/TableColumnManager.java Added: Trunk/pcgen/code/src/java/pcgen/gui/TableColumnManager.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/gui/TableColumnManager.java (rev 0) +++ Trunk/pcgen/code/src/java/pcgen/gui/TableColumnManager.java 2006-03-03 23:15:02 UTC (rev 87) @@ -0,0 +1,105 @@ +package pcgen.gui; + +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; +import java.util.ArrayList; +import java.util.List; + +import javax.swing.JCheckBoxMenuItem; +import javax.swing.JComponent; +import javax.swing.JPopupMenu; +import javax.swing.JTable; +import javax.swing.table.TableColumn; +import javax.swing.table.TableColumnModel; + +public class TableColumnManager implements MouseListener { + private JPopupMenu tablePopup; + private List checkBoxList; + private List columnList; + private List settingList; + private int columnOffset = 0; + private JTable table; + private JComponent tableButton; + + public TableColumnManager(JTable table, JComponent tableButton, List columnList, List settingList, int columnOffset) { + this.table = table; + this.tableButton = tableButton; + this.columnList = columnList; + this.settingList = settingList; + this.columnOffset = columnOffset; + initContents(); + } + + private void initContents() { + tablePopup = new JPopupMenu(); + checkBoxList = new ArrayList(); + + tablePopup = new javax.swing.JPopupMenu(); + for(int i = 0; i < columnList.size(); i++) { + String name = (String)columnList.get(i); + boolean selected = ((Boolean)settingList.get(i)).booleanValue(); + JCheckBoxMenuItem popupCb = new JCheckBoxMenuItem(); + tablePopup.add(popupCb); + popupCb.setText(name); + popupCb.setSelected(selected); + popupCb.addActionListener(new PopupActionListener(popupCb, i + columnOffset)); + checkBoxList.add(popupCb); + } + tableButton.addMouseListener(this); + } + + public void tableDisplay(java.awt.event.MouseEvent evt) { + tablePopup.show(evt.getComponent(), evt.getX(), evt.getY()); + } + + private void TablePopupActionPerformed() { + TableColumnModel colModel = table.getColumnModel(); + while(colModel.getColumnCount() > 1) { + TableColumn col = colModel.getColumn(1); + colModel.removeColumn(col); + } + for(int i = 0; i < checkBoxList.size(); i++) { + JCheckBoxMenuItem cb = (JCheckBoxMenuItem)checkBoxList.get(i); + if(cb.isSelected()) { + TableColumn col = new TableColumn(i + columnOffset); + col.setHeaderValue(cb.getText()); + colModel.addColumn(col); + } + } + } + + private class PopupActionListener implements ActionListener { + JCheckBoxMenuItem popupCb; + int colNo = 0; + public PopupActionListener(JCheckBoxMenuItem popupCb, int colNo) { + this.popupCb = popupCb; + this.colNo = colNo; + } + + public void actionPerformed(ActionEvent e) { + TablePopupActionPerformed(); + } + + } + + public void mouseClicked(MouseEvent e) { + tableDisplay(e); + } + + public void mouseEntered(MouseEvent e) { + } + + public void mouseExited(MouseEvent e) { + } + + public void mousePressed(MouseEvent e) { + tableDisplay(e); + } + + public void mouseReleased(MouseEvent e) { + tableDisplay(e); + } + +} Modified: Trunk/pcgen/code/src/java/pcgen/gui/tabs/spells/InfoSpellBooks.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/gui/tabs/spells/InfoSpellBooks.java 2006-03-03 16:28:24 UTC (rev 86) +++ Trunk/pcgen/code/src/java/pcgen/gui/tabs/spells/InfoSpellBooks.java 2006-03-03 23:15:02 UTC (rev 87) @@ -66,6 +66,7 @@ import pcgen.core.utils.ShowMessageDelegate; import pcgen.gui.GuiConstants; import pcgen.gui.PCGen_Frame1; +import pcgen.gui.TableColumnManager; import pcgen.gui.filter.FilterFactory; import pcgen.gui.panes.FlippingSplitPane; import pcgen.gui.utils.IconUtilitities; @@ -413,8 +414,17 @@ // create tables associated with the above trees createTreeTables(); - - // Build the Top Panel + + List colNameList = new ArrayList(); + colNameList.add("School"); + colNameList.add("Descriptor"); + colNameList.add("Source File"); + List colActiveList = new ArrayList(); + colActiveList.add(new Boolean(true)); + colActiveList.add(new Boolean(true)); + colActiveList.add(new Boolean(true)); + + // Build the Top Panel buildTopPanel(); // Build Bottom Panel @@ -491,10 +501,23 @@ GridBagConstraints.BOTH, GridBagConstraints.NORTH); c.ipadx = 1; - JScrollPane scrollPane = new JScrollPane(availableTable); + JScrollPane scrollPane = new JScrollPane(availableTable, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); gridbag.setConstraints(scrollPane, c); leftPane.add(scrollPane); + JButton columnButton = new JButton(); + scrollPane.setCorner(JScrollPane.UPPER_RIGHT_CORNER, columnButton); + columnButton.setText("^"); + List colNameList = new ArrayList(); + colNameList.add("School"); + colNameList.add("Descriptor"); + colNameList.add("Source File"); + List colActiveList = new ArrayList(); + colActiveList.add(new Boolean(false)); + colActiveList.add(new Boolean(false)); + colActiveList.add(new Boolean(false)); + TableColumnManager manager = new TableColumnManager(availableTable, columnButton, colNameList, colActiveList, 1); + JPanel addSpellPanel = buildAddSpellPanel(); Utility.buildConstraints(c, 0, 2, 1, 1, 1, 0, GridBagConstraints.HORIZONTAL, GridBagConstraints.NORTH); @@ -542,13 +565,44 @@ Utility.buildConstraints(c, 0, 2, 3, 1, 10, 10, GridBagConstraints.BOTH, GridBagConstraints.NORTH); c.ipadx = 1; - scrollPane = new JScrollPane(selectedTable); + scrollPane = new JScrollPane(selectedTable, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); gridbag.setConstraints(scrollPane, c); scrollPane .setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS); selectedTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); selectedTable.setShowHorizontalLines(true); rightPane.add(scrollPane); + + JButton columnButton2 = new JButton(); + scrollPane.setCorner(JScrollPane.UPPER_RIGHT_CORNER, columnButton2); + columnButton.setText("^"); + List colNameList2 = new ArrayList(); + colNameList2.add("School"); + colNameList2.add("Subschool"); + colNameList2.add("Descriptor"); + colNameList2.add("Components"); + colNameList2.add("Casting Time"); + colNameList2.add("Range"); + colNameList2.add("Description"); + colNameList2.add("Target Area"); + colNameList2.add("Duration"); + colNameList2.add("Save Info"); + colNameList2.add("SR"); + colNameList2.add("Source File"); + List colActiveList2 = new ArrayList(); + colActiveList.add(new Boolean(true)); + colActiveList.add(new Boolean(false)); + colActiveList.add(new Boolean(true)); + colActiveList.add(new Boolean(false)); + colActiveList.add(new Boolean(false)); + colActiveList.add(new Boolean(false)); + colActiveList.add(new Boolean(false)); + colActiveList.add(new Boolean(false)); + colActiveList.add(new Boolean(false)); + colActiveList.add(new Boolean(false)); + colActiveList.add(new Boolean(false)); + colActiveList.add(new Boolean(true)); + new TableColumnManager(selectedTable, columnButton2, colNameList2, colActiveList2, 1); } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |