AdventureDemo.java
资源名称:swingx.zip [点击查看]
上传用户:zhengdagz
上传日期:2014-03-06
资源大小:1956k
文件大小:14k
源码类别:
xml/soap/webservice
开发平台:
Java
- /*
- * BindingDemoForm.java
- *
- * Created on January 10, 2005, 1:55 PM
- */
- package org.jdesktop.demo.adventure;
- import java.awt.BorderLayout;
- import java.awt.Dimension;
- import java.awt.GridBagConstraints;
- import java.awt.GridBagLayout;
- import java.awt.Insets;
- import java.text.NumberFormat;
- import javax.swing.BorderFactory;
- import javax.swing.JButton;
- import javax.swing.JFormattedTextField;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JPanel;
- import javax.swing.JScrollPane;
- import javax.swing.JSplitPane;
- import javax.swing.text.DefaultFormatterFactory;
- import javax.swing.text.NumberFormatter;
- import org.jdesktop.dataset.DataSet;
- import java.io.File;
- import javax.swing.JList;
- import javax.swing.JMenuBar;
- import javax.swing.JTable;
- import javax.swing.JTextArea;
- import javax.swing.JTextField;
- //import org.jdesktop.binding.BindingFactory;
- import org.jdesktop.dataset.DataRelation;
- import org.jdesktop.dataset.DataRelationTable;
- import org.jdesktop.demo.DemoPanel;
- import org.jdesktop.demo.MainWindow;
- import org.jdesktop.swingx.JXFrame;
- import org.jdesktop.swingx.JXImagePanel;
- import org.jdesktop.swingx.JXTitledPanel;
- import org.jdesktop.swingx.util.WindowUtils;
- /**
- *
- * @author Richard Bair
- */
- public class AdventureDemo extends JXFrame {
- /**
- * Comment for <code>serialVersionUID</code>
- */
- private static final long serialVersionUID = 3544670668122894901L;
- private DataSet ds;
- private JTextField nameTF;
- private JTextField locationTF;
- private JFormattedTextField priceTF;
- private JTextArea descriptionTA;
- private JXImagePanel imagePanel;
- private JList navigator;
- private JTextField catNameTF;
- private JTable activitiesTBL;
- /** Creates new form BindingDemoForm */
- public AdventureDemo() {
- //construct the DataSet, and loads it with data
- createDataSet();
- //init the gui components
- initComponents();
- //bind the gui components
- // navigator.setDataSource(ds.getTable("package"));
- // navigator.setDataField("name");
- //
- // nameTF.setDataSource(ds.getTable("package"));
- // nameTF.setDataField("name");
- //
- // locationTF.setDataSource(ds.getTable("package"));
- // locationTF.setDataField("location");
- //
- // BindingFactory.bind(priceTF, ds.getTable("package"), "price");
- //
- // descriptionTA.setDataSource(ds.getTable("package"));
- // descriptionTA.setDataField("description");
- //
- // BindingFactory.bind(imagePanel, ds.getTable("package"), "imageuri");
- //
- // activitiesTBL.setDataSource(ds.getTable("activitiesDetail"));
- // activitiesTBL.setDataField("");
- }
- /** This method is called from within the constructor to
- * initialize the form.
- * WARNING: Do NOT modify this code. The content of this method is
- * always regenerated by the Form Editor.
- */
- private void initComponents() {
- setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
- setTitle("Adventure Builder 2.1");
- //use a border layout for the content pane
- JPanel contentPane = new JPanel(new GridBagLayout());
- setContentPane(contentPane);
- JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
- splitPane.setBorder(BorderFactory.createEmptyBorder());
- contentPane.add(splitPane, new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(11, 11, 12, 12), 0, 0));
- JXTitledPanel navigatorPanel = new JXTitledPanel("Packages");
- navigator = new JList();
- //ok, this part is just for fun :)
- // navigator.setCellRenderer(new DefaultListCellRenderer() {
- // Map<String,ImageIcon> cachedImages = new HashMap<String,ImageIcon>();
- // public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
- // JLabel lbl = (JLabel)super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
- // String imageurl = (String)packageDS.getFieldValue("IMAGEURI", index);
- // if (!cachedImages.containsKey(imageurl)) {
- // //scale the image and stuff it in the cache
- // try {
- // ImageIcon icon = new ImageIcon(new URL(imageurl));
- // icon = new ImageIcon(icon.getImage().getScaledInstance(16, 16, 0));
- // cachedImages.put(imageurl, icon);
- // } catch (Exception e) {
- // e.printStackTrace();
- // }
- // }
- // lbl.setIcon(cachedImages.get(imageurl));
- // return lbl;
- // }
- // });
- JScrollPane navSP = new JScrollPane(navigator);
- navSP.setBorder(BorderFactory.createEmptyBorder());
- navigatorPanel.setContentContainer(navSP);
- splitPane.setLeftComponent(navigatorPanel);
- JSplitPane detailSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
- detailSplitPane.setBorder(BorderFactory.createEmptyBorder());
- detailSplitPane.setTopComponent(createPackageDetail());
- detailSplitPane.setBottomComponent(createActivitiesDetail());
- detailSplitPane.setDividerLocation(250);
- splitPane.setRightComponent(detailSplitPane);
- JButton saveButton = new JButton("Save");
- saveButton.setMnemonic('S');
- saveButton.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- saveButtonActionPerformed(evt);
- }
- });
- JButton refreshButton = new JButton("Refresh");
- refreshButton.setMnemonic('R');
- refreshButton.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- refreshButtonActionPerformed(evt);
- }
- });
- // contentPane.add(ButtonBarFactory.buildRightAlignedBar(saveButton, refreshButton), new GridBagConstraints(0, 1, 1, 1, 1.0, 0.0, GridBagConstraints.EAST, GridBagConstraints.HORIZONTAL, new Insets(0, 11, 12, 12), 0, 0));
- setSize(new Dimension(800, 600));
- setLocation(WindowUtils.getPointForCentering(this));
- }
- private JXTitledPanel createPackageDetail() {
- //builder for creating the detail pane
- JPanel detailsPanel = new JPanel(new GridBagLayout());
- imagePanel = new JXImagePanel();
- imagePanel.setBorder(BorderFactory.createEmptyBorder());
- detailsPanel.add(imagePanel, new GridBagConstraints(0, 0, 1, 4, 0.0, 0.0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(12, 12, 5, 5), 0, 0));
- nameTF = new JTextField();
- detailsPanel.add(new JLabel("Name"), new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0, GridBagConstraints.NORTHEAST, GridBagConstraints.NONE, new Insets(12, 0, 0, 0), 0, 0));
- detailsPanel.add(nameTF, new GridBagConstraints(2, 0, 1, 1, 1.0, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL, new Insets(12, 12, 0, 11), 0, 0));
- locationTF = new JTextField();
- detailsPanel.add(new JLabel("Location"), new GridBagConstraints(1, 1, 1, 1, 0.0, 0.0, GridBagConstraints.NORTHEAST, GridBagConstraints.NONE, new Insets(5, 0, 0, 0), 0, 0));
- detailsPanel.add(locationTF, new GridBagConstraints(2, 1, 1, 1, 1.0, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL, new Insets(5, 12, 0, 11), 0, 0));
- priceTF = new JFormattedTextField();
- NumberFormat amountDisplayFormat = NumberFormat.getCurrencyInstance();
- amountDisplayFormat.setMinimumFractionDigits(2);
- NumberFormat amountEditFormat = NumberFormat.getNumberInstance();
- priceTF.setFormatterFactory(new DefaultFormatterFactory(
- new NumberFormatter(amountDisplayFormat),
- new NumberFormatter(amountDisplayFormat),
- new NumberFormatter(amountEditFormat)));
- detailsPanel.add(new JLabel("Price"), new GridBagConstraints(1, 2, 1, 1, 0.0, 0.0, GridBagConstraints.NORTHEAST, GridBagConstraints.NONE, new Insets(5, 0, 0, 0), 0, 0));
- detailsPanel.add(priceTF, new GridBagConstraints(2, 2, 1, 1, 1.0, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL, new Insets(5, 12, 0, 11), 0, 0));
- catNameTF = new JTextField();
- // detailsPanel.add(new JLabel("Category"), new GridBagConstraints(1, 3, 1, 1, 0.0, 0.0, GridBagConstraints.NORTHEAST, GridBagConstraints.NONE, new Insets(5, 0, 0, 0), 0, 0));
- // detailsPanel.add(catNameTF, new GridBagConstraints(2, 3, 1, 1, 1.0, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL, new Insets(5, 12, 0, 11), 0, 0));
- descriptionTA = new JTextArea();
- detailsPanel.add(new JLabel("Description"), new GridBagConstraints(1, 3, 1, 1, 0.0, 0.0, GridBagConstraints.NORTHEAST, GridBagConstraints.NONE, new Insets(5, 0, 0, 0), 0, 0));
- detailsPanel.add(new JScrollPane(descriptionTA), new GridBagConstraints(2, 3, 1, 1, 1.0, 1.0, GridBagConstraints.NORTH, GridBagConstraints.BOTH, new Insets(5, 12, 11, 11), 0, 0));
- JXTitledPanel detailPanel = new JXTitledPanel("Package Details");
- detailPanel.setContentContainer(detailsPanel);
- return detailPanel;
- }
- private JXTitledPanel createActivitiesDetail() {
- JXTitledPanel activitiesPanel = new JXTitledPanel("Activities");
- activitiesTBL = new JTable();
- // activitiesTBL.setEvenRowBackground(Color.WHITE);
- // activitiesTBL.setOddRowBackground(new Color(0xd2dfee));
- // activitiesTBL.setHasColumnControl(true);
- activitiesTBL.setShowHorizontalLines(false);
- // activitiesTBL.getTable().setSortable(true);
- activitiesTBL.setBorder(BorderFactory.createEmptyBorder());
- // activitiesTBL.getTable().setDefaultRenderer(String.class, new DefaultTableCellRenderer() {
- // private JXImagePanel imagePanel = new JXImagePanel();
- // public Component getTableCellRendererComponent(javax.swing.JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
- // if (value instanceof String && ((String)value).startsWith("http://") && ((String)value).endsWith(".gif")) {
- // try {
- //// super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
- // ImageIcon ii = new ImageIcon(new URL((String)value));
- // System.out.println(ii.getIconWidth());
- // System.out.println(ii.getImageLoadStatus() == java.awt.MediaTracker.COMPLETE);
- // imagePanel.setIcon(ii);
- // return imagePanel;
- // } catch (Exception e) {
- // e.printStackTrace();
- // }
- // }
- // return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
- // }
- //
- // });
- activitiesPanel.getContentContainer().setLayout(new BorderLayout());
- activitiesPanel.getContentContainer().add(activitiesTBL, BorderLayout.CENTER);
- return activitiesPanel;
- }
- private void refreshButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_refreshButtonActionPerformed
- // conn.setConnected(false);
- ds.readXml(new File("/home/rb156199/dataset.xml"));
- }//GEN-LAST:event_refreshButtonActionPerformed
- private void saveButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveButtonActionPerformed
- // conn.setConnected(true);
- System.out.println(ds.writeXml());
- }//GEN-LAST:event_saveButtonActionPerformed
- private void createDataSet() {
- ds = DataSet.createFromSchema(getClass().getResourceAsStream("resources/dataset.xsd"));
- DataRelation packageToCategory = ds.createRelation();
- packageToCategory.setName("packageToCategory");
- packageToCategory.setParentColumn(ds.getTable("package").getColumn("catid"));
- packageToCategory.setChildColumn(ds.getTable("category").getColumn("catid"));
- DataRelation packageToActivityList = ds.createRelation();
- packageToActivityList.setName("packageToActivityList");
- packageToActivityList.setParentColumn(ds.getTable("package").getColumn("packageid"));
- packageToActivityList.setChildColumn(ds.getTable("activityList").getColumn("packageid"));
- DataRelationTable activityListDetails = ds.createRelationTable();
- activityListDetails.setName("activityListDetails");
- activityListDetails.setRelation(packageToActivityList);
- activityListDetails.setParentSelector(ds.getTable("package").getSelector("current"));
- DataRelation activityListToActivity = ds.createRelation();
- activityListToActivity.setName("activityListToActivity");
- activityListToActivity.setParentColumn(ds.getTable("activityList").getColumn("activityid"));
- activityListToActivity.setChildColumn(ds.getTable("activity").getColumn("activityid"));
- DataRelationTable categoryDetail = ds.createRelationTable();
- categoryDetail.setName("categoryDetail");
- categoryDetail.setRelation(packageToCategory);
- categoryDetail.setParentSelector(ds.getTable("package").getSelector("current"));
- DataRelationTable activitiesDetail = ds.createRelationTable();
- activitiesDetail.setName("activitiesDetail");
- activitiesDetail.setRelation(activityListToActivity);
- activitiesDetail.setParentTable(ds.getTable("activityListDetails"));
- ds.readXml(getClass().getResourceAsStream("resources/dataset.xml"));
- }
- public static void main(String[] args) {
- // MainWindow.main(new String[]{"-d", "org.jdesktop.demo.adventure.AdventureDemo"});
- new AdventureDemo().setVisible(true);
- }
- }