?? templatemanagerpane.java
字號:
package com.sutternow.swingkar.gui;import com.gargoylesoftware.base.gui.TableLayout;import com.sutternow.swingkar.ConfigManager;import com.sutternow.templates.TemplatesDefs;import com.sutternow.templates.Listing;import javax.swing.*;import javax.swing.table.AbstractTableModel;import java.awt.event.*;import java.awt.*;import java.util.Comparator;import java.io.FileWriter;import java.io.IOException;import net.sf.easylayouts.RowLayout;import org.exolab.castor.xml.MarshalException;import org.exolab.castor.xml.ValidationException;/** * Created by IntelliJ IDEA. * User: payne * Date: Aug 22, 2003 * Time: 10:37:46 AM * To change this template use Options | File Templates. */public class TemplateManagerPane implements ActionListener, MouseListener { public String Title = "Bean Template Manager"; final TableLayout layout = new TableLayout(); public TemplateManagerPane(TemplatesDefs _defs) { this.defs = _defs; templatePanel = this.createPanel(); /* templates.xml is expected to be at the root of a class path element */ outPath.setText(this.getClass().getResource("/templates.xml").getPath()); } public void showEditForm() { Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); JFrame prefFrame = new JFrame(this.Title); prefFrame.setSize(screenSize.width/2 - 60, screenSize.height/2); //screenSize.width / 2, screenSize.height / 2, 355, 250); Container panel = prefFrame.getContentPane(); panel.add(this.getEditForm()); prefFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); prefFrame.show(); } public JPanel getEditForm() { return templatePanel; } private JPanel createPanel() { final JPanel panel = new JPanel(); final JPanel topPanel = new JPanel(new TableLayout()); final JPanel bottomPanel = new JPanel(); /* rowLayout used as parent panel */ RowLayout rowLayout = new RowLayout(panel, 1, 25); topPanel.add(new JLabel("Name:"), "1,1"); entryName = new JTextField(10); topPanel.add(entryName, "1,2"); topPanel.add(new JLabel("Description:"), "2,1"); description = new JTextField(20); topPanel.add(description, "2,2"); topPanel.add(new JLabel("File Suffix:"), "3,1"); fileSuffix = new JTextField(10); topPanel.add(fileSuffix, "3,2"); topPanel.add(new JLabel("Package Branch:"), "4,1"); packageBranch = new JTextField(10); topPanel.add(packageBranch, "4,2"); cmdAdd = new JButton("Add"); cmdAdd.addActionListener(this); // popup menu popmenu = new JPopupMenu(); editEntry = new JMenuItem("Edit"); editEntry.addActionListener(this); popmenu.add(editEntry); delEntry = new JMenuItem("Delete"); delEntry.addActionListener(this); popmenu.add(delEntry); topPanel.add(cmdAdd, "4,3"); qtm = new TemplateTableModel(defs); fieldsTable = new JTable(qtm); fieldsTable.addMouseListener(this); JScrollPane jsp = new JScrollPane(fieldsTable); jsp.setMinimumSize(new Dimension(130, 80)); jsp.setMaximumSize(new Dimension(450, 260)); jsp.setPreferredSize(new Dimension(450, 240)); outPath = new JTextField(20); bottomPanel.add(outPath); cmdSave = new JButton("Save"); cmdSave.addActionListener(this); bottomPanel.add(cmdSave); layout.setColumnExpandable(0, true); layout.setColumnExpandable(1, true); rowLayout.add(topPanel, 0); rowLayout.add(jsp, 1); rowLayout.add(bottomPanel, 2); return panel; } public void actionPerformed(ActionEvent ae) { Object src = ae.getSource(); if (src == cmdAdd) { doAdd(); } else if (src==cmdSave) { doSave(); } else if (src == delEntry) { int targetRow; if (fieldsTable.getSelectedRowCount() > 0) { targetRow = fieldsTable.getSelectedRow(); defs.getBeanTemplates().removeListing(targetRow); qtm.requestRefresh(); } } } //{{{ Mouse Listener Interface Implementation private void handleMouseEvent(MouseEvent evt) { if (evt.isPopupTrigger()) { if (popmenu.isVisible()) { popmenu.setVisible(false); } else { popmenu.show((Component) evt.getSource(), evt.getX(), evt.getY()); } } } public void mousePressed(MouseEvent evt) { handleMouseEvent(evt); } public void mouseReleased(MouseEvent evt) { handleMouseEvent(evt); } public void mouseClicked(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } private void doSave() { try { defs.marshal(new FileWriter(outPath.getText())); } catch (MarshalException e) { e.printStackTrace(); //To change body of catch statement use Options | File Templates. } catch (ValidationException e) { e.printStackTrace(); //To change body of catch statement use Options | File Templates. } catch (IOException e) { e.printStackTrace(); //To change body of catch statement use Options | File Templates. } } private void doAdd() { Listing item = new Listing(); item.setDescription(description.getText()); item.setName(entryName.getText()); item.setFileSuffix(fileSuffix.getText()); item.setPackageBranch(packageBranch.getText()); defs.getBeanTemplates().addListing(item); description.setText(""); entryName.setText(""); fileSuffix.setText(""); packageBranch.setText(""); qtm.requestRefresh(); entryName.requestFocus(); } private JTextField description; private JTextField entryName; private JTextField fileSuffix; private JTextField packageBranch; private JTextField outPath; private JButton cmdAdd; private JButton cmdSave; JPopupMenu popmenu; JMenuItem delEntry; JMenuItem editEntry; private JButton addItem; TemplatesDefs defs; private JPanel templatePanel; private TemplateTableModel qtm; private JTable fieldsTable; private ConfigManager cm;}class TemplateTableModel extends AbstractTableModel { /** * Constructs an TemplateDef table model. * @param _defs the TemplateDefs */ public TemplateTableModel(TemplatesDefs _defs) { defs = _defs; } public int getRowCount() { return defs.getBeanTemplates().getListingCount(); } public boolean isCellEditable(int rowIndex, int columnIndex) { return true; } public void requestRefresh() { /* Used to refresh the table */ super.fireTableDataChanged(); } public int getColumnCount() { return 4; } public void setValueAt(Object aValue, int r, int c) { Listing listing = defs.getBeanTemplates().getListing(r); switch (c) { case 0: listing.setName((String) aValue); case 1: listing.setDescription((String) aValue); case 2: listing.setFileSuffix((String) aValue); case 3: listing.setPackageBranch((String) aValue); } } public Object getValueAt(int r, int c) { Listing listing = defs.getBeanTemplates().getListing(r); switch (c) { case 0: return listing.getName(); case 1: return listing.getDescription(); case 2: return listing.getFileSuffix(); case 3: return listing.getPackageBranch(); } return "no value dude"; } public String getColumnName(int c) { switch (c) { case 0: return "Template Name"; case 1: return "Description"; case 2: return "File Suffix"; case 3: return "Package Branch"; } return "no value dude"; } private TemplatesDefs defs;} //}}}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -