Example usage for com.jgoodies.forms.builder DefaultFormBuilder append

List of usage examples for com.jgoodies.forms.builder DefaultFormBuilder append

Introduction

In this page you can find the example usage for com.jgoodies.forms.builder DefaultFormBuilder append.

Prototype

public JLabel append(String textWithMnemonic, Component component) 

Source Link

Document

Adds a text label and component to the panel.

Usage

From source file:ca.sqlpower.matchmaker.swingui.munge.ConcatMungeComponent.java

License:Open Source License

@Override
protected JPanel buildUI() {
    ConcatMungeStep step = (ConcatMungeStep) getStep();

    addInputButton = new JButton(new AddInputAction("Add Input"));
    removeInputsButton = new JButton(new RemoveUnusedInputAction("Clean Up"));

    delimiterField = new JTextField(step.getDelimiter());
    delimiterField.getDocument().addDocumentListener(new DocumentListener() {
        public void insertUpdate(DocumentEvent e) {
            doStuff();/*from w w w  . j a v a 2 s.  c  o m*/
        }

        public void removeUpdate(DocumentEvent e) {
            doStuff();
        }

        public void changedUpdate(DocumentEvent e) {
            doStuff();
        }

        private void doStuff() {
            ConcatMungeStep step = (ConcatMungeStep) getStep();
            step.setDelimiter(delimiterField.getText());
        }
    });

    FormLayout fl = new FormLayout("pref:grow,4dlu,pref:grow");
    DefaultFormBuilder b = new DefaultFormBuilder(fl);
    b.append("Delimiter", delimiterField);
    b.append(ButtonBarFactory.buildAddRemoveBar(addInputButton, removeInputsButton), 3);

    content = b.getPanel();
    return content;
}

From source file:ca.sqlpower.matchmaker.swingui.munge.CSVWriterMungeComponent.java

License:Open Source License

@Override
protected JPanel buildUI() {
    final CSVWriterMungeStep step = (CSVWriterMungeStep) getStep();

    addInputButton = new JButton(new AddInputAction("Add Input"));
    removeInputsButton = new JButton(new RemoveUnusedInputAction("Clean Up"));
    separatorField = new JTextField(step.getSeparator() + "", 1);
    getHandler().addValidateObject(separatorField, new CharacterValidator("separator"));
    separatorField.getDocument().addDocumentListener(new DocumentListener() {
        public void changedUpdate(DocumentEvent e) {
            doStuff();//from w  w w  .  j  a  v a 2 s .  co  m
        }

        public void insertUpdate(DocumentEvent e) {
            doStuff();
        }

        public void removeUpdate(DocumentEvent e) {
            doStuff();
        }

        private void doStuff() {
            if (separatorField.getText().length() == 1) {
                step.setSeparator(separatorField.getText().charAt(0));
            }
        }
    });

    quoteField = new JTextField(step.getQuoteChar() + "", 1);
    getHandler().addValidateObject(quoteField, new CharacterValidator("quote"));
    quoteField.getDocument().addDocumentListener(new DocumentListener() {
        public void changedUpdate(DocumentEvent e) {
            doStuff();
        }

        public void insertUpdate(DocumentEvent e) {
            doStuff();
        }

        public void removeUpdate(DocumentEvent e) {
            doStuff();
        }

        private void doStuff() {
            if (quoteField.getText().length() == 1) {
                step.setQuoteChar(quoteField.getText().charAt(0));
            }
        }
    });

    escapeField = new JTextField(step.getEscapeChar() + "", 1);
    getHandler().addValidateObject(escapeField, new CharacterValidator("escape"));
    escapeField.getDocument().addDocumentListener(new DocumentListener() {
        public void changedUpdate(DocumentEvent e) {
            doStuff();
        }

        public void insertUpdate(DocumentEvent e) {
            doStuff();
        }

        public void removeUpdate(DocumentEvent e) {
            doStuff();
        }

        private void doStuff() {
            if (escapeField.getText().length() == 1) {
                step.setEscapeChar(escapeField.getText().charAt(0));
            }
        }
    });

    filePathField = new JTextField(step.getFilePath(), 20);
    getHandler().addValidateObject(filePathField, new FileNameValidator("Output"));
    filePathField.getDocument().addDocumentListener(new DocumentListener() {
        public void changedUpdate(DocumentEvent e) {
            doStuff();
        }

        public void insertUpdate(DocumentEvent e) {
            doStuff();
        }

        public void removeUpdate(DocumentEvent e) {
            doStuff();
        }

        private void doStuff() {
            step.setFilePath(filePathField.getText());
        }
    });

    fileChooser = new JFileChooser();
    fileButton = new JButton(new AbstractAction("...") {
        public void actionPerformed(ActionEvent e) {
            if (fileChooser.showSaveDialog(CSVWriterMungeComponent.this) == JFileChooser.APPROVE_OPTION) {
                filePathField.setText(fileChooser.getSelectedFile().getAbsolutePath());
            }
        }
    });

    clrFileCheckBox = new JCheckBox();
    clrFileCheckBox.setSelected(step.getClearFile());
    clrFileCheckBox.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            step.setClearFile(clrFileCheckBox.isSelected());
        }
    });

    FormLayout fl = new FormLayout("pref:grow,4dlu,pref:grow");
    DefaultFormBuilder b = new DefaultFormBuilder(fl);
    b.append(filePathField, fileButton);
    b.append("Separator", separatorField);
    b.append("Quote Char", quoteField);
    b.append("Escape Char", escapeField);
    b.append("Clear File", clrFileCheckBox);
    b.append(ButtonBarFactory.buildAddRemoveBar(addInputButton, removeInputsButton), 3);

    content = b.getPanel();
    return content;
}

From source file:ca.sqlpower.matchmaker.swingui.munge.DateConstantMungeComponent.java

License:Open Source License

@Override
protected JPanel buildUI() {
    final DateConstantMungeStep step = (DateConstantMungeStep) getStep();
    Date value;/*from w  ww. java  2 s . c  o m*/
    try {
        value = ((DateConstantMungeStep) getStep()).getValueAsDate();
    } catch (ParseException e) {
        SPSUtils.showExceptionDialogNoReport(getPen(), "Error Loading munge step", e);
        value = null;
    }
    if (value == null) {
        value = new Date();
        ((DateConstantMungeStep) getStep()).setValueAsDate(value);
    }
    dc = new SpinnerDateModel(value, null, null, Calendar.SECOND);
    date = new JSpinner(dc);
    editor = new JSpinner.DateEditor(date, getFormateString());
    date.setEditor(editor);
    getHandler().addValidateObject(date, new DateValidator());

    dc.addChangeListener(new ChangeListener() {
        public void stateChanged(ChangeEvent e) {
            setDate();
        }
    });

    retNull = new JCheckBox("Return null");
    retNull.addActionListener(new AbstractAction() {
        public void actionPerformed(ActionEvent e) {
            boolean b = retNull.isSelected();
            if (b) {
                useCurrent.setEnabled(false);
                useCurrent.setSelected(false);
                date.setEnabled(false);
                opts.setEnabled(!retNull.isSelected());
            } else if (!useCurrent.isSelected()) {
                date.setEnabled(true);
                useCurrent.setEnabled(true);
                opts.setEnabled(!retNull.isSelected());
            }
            step.setReturnNull(b);
        }
    });

    useCurrent = new JCheckBox("Use Time of engine run");
    useCurrent.addActionListener(new AbstractAction() {
        public void actionPerformed(ActionEvent e) {
            boolean b = useCurrent.isSelected();
            if (b) {
                retNull.setEnabled(false);
                retNull.setSelected(false);
                date.setEnabled(false);
                opts.setEnabled(!retNull.isSelected());
            } else if (!retNull.isSelected()) {
                date.setEnabled(true);
                opts.setEnabled(!retNull.isSelected());
                retNull.setEnabled(true);
            }
            step.setUseCurrentTime(b);
        }
    });

    retNull.setSelected(step.isReturnNull());
    if (retNull.isSelected()) {
        useCurrent.setEnabled(false);
    }
    useCurrent.setSelected(step.getUseCurrentTime());
    if (useCurrent.isSelected()) {
        retNull.setEnabled(false);
    }
    date.setEnabled(!retNull.isSelected() && !useCurrent.isSelected());

    opts = new JComboBox(DateConstantMungeStep.FORMAT.toArray());
    opts.addItemListener(new ItemListener() {
        public void itemStateChanged(ItemEvent e) {
            step.setDateFormat((String) opts.getSelectedItem());
            date.setEditor(new JSpinner.DateEditor(date, getFormateString()));
        }
    });

    opts.setSelectedItem(step.getDateFormat());
    opts.setEnabled(!retNull.isSelected());

    FormLayout layout = new FormLayout("pref,4dlu,pref:grow");
    DefaultFormBuilder fb = new DefaultFormBuilder(layout);
    fb.append("Value:", date);
    fb.append("Format", opts);
    fb.append("", retNull);
    fb.append("", useCurrent);

    return fb.getPanel();
}

From source file:ca.sqlpower.matchmaker.swingui.munge.NumberConstantMungeComponent.java

License:Open Source License

@Override
protected JPanel buildUI() {
    final NumberConstantMungeStep step = (NumberConstantMungeStep) getStep();
    valueField = new JTextField(step.getValue() == null ? "" : step.getValue().toString());

    valueField.getDocument().addDocumentListener(new DocumentListener() {
        void change() {
            step.setValue(new BigDecimal(valueField.getText()));
        }//from  w w w . j  a  v a  2s. com

        public void changedUpdate(DocumentEvent e) {
            change();
        }

        public void insertUpdate(DocumentEvent e) {
            change();
        }

        public void removeUpdate(DocumentEvent e) {
            change();
        }
    });

    retNull = new JCheckBox("Return null");
    retNull.addActionListener(new AbstractAction() {
        public void actionPerformed(ActionEvent e) {
            boolean b = retNull.isSelected();
            valueField.setEnabled(!b);
            if (b) {
                step.setValue(null);
            }
        }
    });

    retNull.setSelected(step.getValue() == null);
    valueField.setEnabled(!retNull.isSelected());

    FormLayout layout = new FormLayout("pref,4dlu,pref:grow");
    DefaultFormBuilder fb = new DefaultFormBuilder(layout);
    fb.append("Value:", valueField);
    fb.append("", retNull);

    return fb.getPanel();
}

From source file:ca.sqlpower.matchmaker.swingui.munge.StringConstantMungeComponent.java

License:Open Source License

@Override
protected JPanel buildUI() {
    StringConstantMungeStep step = ((StringConstantMungeStep) getStep());
    final JTextField valueField = new JTextField(step.getOutValue());
    valueField.getDocument().addDocumentListener(new DocumentListener() {

        void change() {
            ((StringConstantMungeStep) getStep()).setOutValue(valueField.getText());
        }/*from ww w  .  ja v a 2  s .c  o  m*/

        public void changedUpdate(DocumentEvent e) {
            change();
        }

        public void insertUpdate(DocumentEvent e) {
            change();
        }

        public void removeUpdate(DocumentEvent e) {
            change();
        }
    });

    final JCheckBox retNull = new JCheckBox("Return null");
    retNull.addActionListener(new AbstractAction() {
        public void actionPerformed(ActionEvent e) {
            boolean b = retNull.isSelected();
            valueField.setEnabled(!b);
            ((StringConstantMungeStep) getStep()).setReturnNull(b);
        }
    });

    retNull.setSelected(Boolean.valueOf(((StringConstantMungeStep) getStep()).isReturnNull()));
    valueField.setEnabled(!retNull.isSelected());

    FormLayout layout = new FormLayout("pref,4dlu,pref:grow");
    DefaultFormBuilder fb = new DefaultFormBuilder(layout);
    fb.append("Value:", valueField);
    fb.append("", retNull);

    return fb.getPanel();
}

From source file:ca.sqlpower.matchmaker.swingui.SQLObjectChooser.java

License:Open Source License

/**
 * Presents a modal dialog with combo boxes for database connections,
 * catalogs, and schemas. Initially, there is no selection in the database
 * combo box, and the others are empty. As databases are chosen by the user,
 * the other combo boxes become enabled depending on the containment
 * hierarchy of the selected datbase (for instance, some databases have
 * catalogs but not schemas; others have schemas but not catalogs; others
 * have both; and still others just have tables directly inside the
 * top-level database connection)./*w ww  .  j a  v  a  2 s.  c o  m*/
 * <p>
 * The type of the return value depends on the containment hierarchy of the selected database (the possibilities are described above).
 * The guarantee is that the returned object will itself be a "table container;" that is, its
 * children are of type SQLTable.
 * 
 * @param session The current MatchMaker session
 * @param owner The component that owns the dialog
 * @param dialogTitle The title to give the dialog
 * @param okButtonLabel The text that should appear on the OK button
 * @return The selected "table container" object, or <tt>null</tt> if the user cancels or
 * closes the dialog.
 * @throws SQLObjectException If there are problems connecting to or populating the chosen databases
 */
public static SQLObject showSchemaChooserDialog(MatchMakerSwingSession session, Component owner,
        String dialogTitle, String okButtonLabel) throws SQLObjectException {
    // single boolean in final array so the buttons can modify its value
    final boolean[] dialogAccepted = new boolean[1];
    final JDialog d = SPSUtils.makeOwnedDialog(owner, dialogTitle);
    SQLObjectChooser soc = new SQLObjectChooser(session, d);

    FormLayout layout = new FormLayout("pref,4dlu,pref");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);
    builder.setDefaultDialogBorder();

    builder.append("Connection", soc.getDataSourceComboBox());
    builder.append(soc.getCatalogTerm(), soc.getCatalogComboBox());
    builder.append(soc.getSchemaTerm(), soc.getSchemaComboBox());

    JButton okButton = new JButton(okButtonLabel);
    okButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            dialogAccepted[0] = true;
            d.dispose();
        }
    });

    JButton cancelButton = new JButton("Cancel");
    cancelButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            d.dispose();
        }
    });

    builder.append(ButtonBarFactory.buildOKCancelBar(okButton, cancelButton), 3);

    d.setContentPane(builder.getPanel());
    d.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
    d.setModal(true);
    d.pack();
    d.setLocationRelativeTo(owner);

    for (;;) {
        dialogAccepted[0] = false;
        d.setVisible(true);

        if (!dialogAccepted[0]) {
            return null;
        }

        logger.debug("User submitted a selection. Chooser state: " + soc);

        // post-mortem: figure out if we're returning a database, catalog, or schema
        if (soc.schema != null) {
            return soc.schema;
        } else if (soc.catalog != null && !soc.schemaComboBox.isEnabled()) {
            return soc.catalog;
        } else if (soc.db != null && (!(soc.schemaComboBox.isEnabled() || soc.catalogComboBox.isEnabled()))) {
            return soc.db;
        } else {
            return null;
        }
    }
}

From source file:ca.sqlpower.swingui.enterprise.client.SPServerInfoPanel.java

License:Open Source License

private JPanel buildUI(SPServerInfo si) {
    DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("pref, 4dlu, max(100dlu; pref):grow")); //$NON-NLS-1$

    builder.append(Messages.getString("SPServerInfoPanel.displayNameField"), //$NON-NLS-1$
            name = new JTextField(si.getName()));
    builder.append(Messages.getString("SPServerInfoPanel.hostField"), //$NON-NLS-1$
            host = new JTextField(si.getServerAddress()));
    builder.append(Messages.getString("SPServerInfoPanel.portField"), //$NON-NLS-1$
            port = new JTextField(String.valueOf(si.getPort())));
    builder.append(Messages.getString("SPServerInfoPanel.pathField"), path = new JTextField(si.getPath())); //$NON-NLS-1$
    builder.append(Messages.getString("SPServerInfoPanel.usernameField"), //$NON-NLS-1$
            username = new JTextField(si.getUsername()));
    if (si.isPasswordAllowed()) {
        builder.append(Messages.getString("SPServerInfoPanel.passwordField"), //$NON-NLS-1$
                password = new JPasswordField(si.getPassword()));
    }/*from  www .  ja  v  a  2  s.c om*/

    builder.append(testButton = new JButton(Messages.getString("SPServerInfoPanel.testConnectionButton"))); //$NON-NLS-1$
    builder.appendParagraphGapRow();

    return builder.getPanel();
}

From source file:ca.sqlpower.swingui.JDBCDataSourcePanel.java

License:Open Source License

/**
 * Builds and returns a Swing component that has all the general database
 * settings (the ones that are always required no matter what you want to
 * use this connection for).//from  w ww .  ja va2  s  . co m
 */
private JPanel buildGeneralPanel(JDBCDataSource dbcs) {
    DataSourceCollection<SPDataSource> dsCollection = dbcs.getParentCollection();
    List<JDBCDataSourceType> dataSourceTypes = dsCollection.getDataSourceTypes();
    dataSourceTypes.add(0, new JDBCDataSourceType());
    dataSourceTypeBox = new JComboBox(dataSourceTypes.toArray());
    dataSourceTypeBox.setRenderer(new SPDataSourceTypeListCellRenderer());
    dataSourceTypeBox.setSelectedIndex(0);

    // if this data source has no parent, it is a root data source
    if (dbcs.isParentSet()) {
        logger.debug("A PARENT! setting selected item to: \"" + dbcs.getParentType() + "\""); //$NON-NLS-1$ //$NON-NLS-2$
        dataSourceTypeBox.setSelectedItem(dbcs.getParentType());
    } else {
        logger.debug("NO PARENT! setting selected item to: \"" + dbcs + "\""); //$NON-NLS-1$ //$NON-NLS-2$
        dataSourceTypeBox.setSelectedItem(dbcs);
    }

    dbNameField = new JTextField(dbcs.getName());
    dbNameField.setName("dbNameField"); //$NON-NLS-1$

    logger.debug("dbcs.getUrl() returns " + dbcs.getUrl()); //$NON-NLS-1$
    dbUrlField = new JTextField(dbcs.getUrl());

    platformSpecificOptions = new PlatformSpecificConnectionOptionPanel(dbUrlField);
    if (dbcs.isParentSet()) {
        platformSpecificOptions.setTemplate(dbcs.getParentType());
    }

    dbTestResult = new JLabel();
    sysprops = new JTextArea();
    sysprops.setBorder(null);
    sysprops.setOpaque(false);
    sysprops.setEditable(false);
    sysprops.setFont(dbTestResult.getFont());

    dbTestConnection = new JButton(
            new AbstractAction(Messages.getString("SPDataSourcePanel.testConnectionActionName")) { //$NON-NLS-1$
                public void actionPerformed(ActionEvent e) {
                    sysprops.setText("");
                    Connection con = null;
                    try {
                        JDBCDataSource dbcs = new JDBCDataSource(
                                JDBCDataSourcePanel.this.dbcs.getParentCollection());
                        String name = dbNameField.getText();
                        dbcs.setName(name);
                        dbcs.setDisplayName(name);
                        dbcs.setParentType((JDBCDataSourceType) dataSourceTypeBox.getSelectedItem());
                        dbcs.setUrl(dbUrlField.getText());
                        dbcs.setUser(dbUserField.getText());
                        dbcs.setPass(new String(dbPassField.getPassword()));
                        con = dbcs.createConnection();

                        // No exception thrown, so success!
                        dbTestResult.setText(Messages.getString("SPDataSourcePanel.connectionTestSuccessful")); //$NON-NLS-1$
                        sysprops.append(JDBCDataSource.getConnectionInfoString(dbcs, true));
                    } catch (SQLException ex) {
                        dbTestResult.setText(Messages.getString("SPDataSourcePanel.connectionTestFailed")); //$NON-NLS-1$
                        SPSUtils.showExceptionDialogNoReport(panel,
                                Messages.getString("SPDataSourcePanel.connectionTestException"), ex); //$NON-NLS-1$
                    } finally {
                        if (con != null) {
                            try {
                                con.close();
                            } catch (SQLException ex) {
                                logger.error("Failed to close connection!", ex); //$NON-NLS-1$
                            }
                        }
                    }
                }
            });

    //we know this should be set to pref but one of the components seems to be updating the
    //preferred size
    DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("pref, 4dlu, 0:grow")); //$NON-NLS-1$
    builder.append(Messages.getString("SPDataSourcePanel.connectionNameLabel"), dbNameField); //$NON-NLS-1$
    builder.append(Messages.getString("SPDataSourcePanel.databaseTypeLabel"), dataSourceTypeBox); //$NON-NLS-1$
    builder.append(Messages.getString("SPDataSourcePanel.connectionOptionsLabel"), //$NON-NLS-1$
            platformSpecificOptions.getPanel());
    builder.append(Messages.getString("SPDataSourcePanel.jdbcUrlLabel"), dbUrlField); //$NON-NLS-1$
    builder.append(Messages.getString("SPDataSourcePanel.usernameLabel"), //$NON-NLS-1$
            dbUserField = new JTextField(dbcs.getUser()));
    builder.append(Messages.getString("SPDataSourcePanel.passwordLabel"), //$NON-NLS-1$
            dbPassField = new JPasswordField(dbcs.getPass()));

    // extra fields supplied by subclasses
    for (JComponent extraField : extraFields) {
        builder.append((String) extraField.getClientProperty(EXTRA_FIELD_LABEL_PROP), extraField);
    }

    builder.append(dbTestConnection, dbTestResult);
    builder.append("\t\t", sysprops);

    dataSourceTypeBox.addItemListener(new ItemListener() {
        public void itemStateChanged(ItemEvent e) {
            JDBCDataSourceType parentType = (JDBCDataSourceType) dataSourceTypeBox.getSelectedItem();
            platformSpecificOptions.setTemplate(parentType);
        }
    });

    // ensure enough width for the platform specific options
    JPanel p = builder.getPanel();
    p.setPreferredSize(new Dimension(600, 300));

    return p;
}

From source file:ca.sqlpower.swingui.query.SQLQueryUIComponents.java

License:Open Source License

/**
 * Builds the UI of the {@link SQLQueryUIComponents}. If you just want an
 * easy way to build a full-featured query UI and don't want to customize
 * its internals, you have come to the right place. This also allows a SQL
 * string to initialize the query UI with.
 * /*from  w ww .  j av a2s. c  o  m*/
 * @param swRegistry
 *            The registry with which all background tasks will be
 *            registered. This argument must not be null.
 * @param dsCollection
 *            The collection of data sources that will be available for
 *            querying from the UI. This argument must not be null.
 * 
 * @param ds
 *            The data source that the initial query will be executed on.
 *            This data source must be contained in the dsCollection and not
 *            null for the query to be executed. If the data source is null
 *            then the query will not be executed.
 * 
 * @param initialSQL
 *            The string that will be executed immediately when the query
 *            tool is shown. If this is null then no query will be executed.
 */
public static JComponent createQueryPanel(SwingWorkerRegistry swRegistry, DataSourceCollection dsCollection,
        SQLDatabaseMapping mapping, Window owner, SQLDatabase db, String initialSQL) {

    JPanel defaultQueryPanel = new JPanel();
    SQLQueryUIComponents queryParts = new SQLQueryUIComponents(swRegistry, dsCollection, mapping,
            defaultQueryPanel);
    queryParts.addWindowListener(owner);
    JToolBar toolbar = new JToolBar();
    toolbar.setFloatable(false);
    toolbar.add(queryParts.getPrevQueryButton());
    toolbar.add(queryParts.getNextQueryButton());
    toolbar.addSeparator();
    toolbar.add(queryParts.getExecuteButton());
    toolbar.add(queryParts.getStopButton());
    toolbar.add(queryParts.getClearButton());
    toolbar.addSeparator();
    toolbar.add(queryParts.getAutoCommitToggleButton());
    toolbar.add(queryParts.getCommitButton());
    toolbar.add(queryParts.getRollbackButton());
    toolbar.addSeparator();
    toolbar.add(queryParts.getUndoButton());
    toolbar.add(queryParts.getRedoButton());

    FormLayout textAreaLayout = new FormLayout("pref:grow, 10dlu, pref, 10dlu, pref, 10dlu, pref",
            "pref, pref, fill:max(100dlu;pref):grow");
    DefaultFormBuilder textAreaBuilder = new DefaultFormBuilder(textAreaLayout, defaultQueryPanel);
    textAreaBuilder.setDefaultDialogBorder();
    textAreaBuilder.append(toolbar, 7);
    textAreaBuilder.nextLine();
    textAreaBuilder.append(queryParts.getDatabaseComboBox());
    textAreaBuilder.append(queryParts.getDbcsManagerButton());
    textAreaBuilder.append(Messages.getString("SQLQuery.rowLimit"));
    JSpinner rowlimitSpinner = queryParts.getRowLimitSpinner();
    rowlimitSpinner.setValue(new Integer(1000));
    textAreaBuilder.append(rowlimitSpinner);
    textAreaBuilder.nextLine();
    textAreaBuilder.append(new RTextScrollPane(queryParts.getQueryArea(), true), 7);

    JSplitPane queryPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);

    queryPane.add(defaultQueryPanel, JSplitPane.TOP);

    queryPane.add(queryParts.getResultTabPane(), JSplitPane.BOTTOM);

    if (db != null && initialSQL != null && dsCollection.getConnections().contains(db.getDataSource())) {
        queryParts.getDatabaseComboBox().setSelectedItem(db.getDataSource());
        queryParts.getQueryArea().setText(initialSQL);
        queryParts.executeQuery(initialSQL);
    }

    return queryPane;

}

From source file:ca.sqlpower.swingui.query.SQLQueryUIComponents.java

License:Open Source License

/**
 * Creates all of the JTables for the result tab and adds them to the result tab.
 * @throws SQLException //from   w w w.  jav  a 2 s .c o  m
 */
private synchronized void createResultSetTables(List<CachedRowSet> resultSets, StatementExecutor executor)
        throws SQLException {
    clearResultTables(true);
    for (StreamingRowSetListener rowSetListener : rowSetListeners) {
        rowSetListener.disconnect();
    }
    rowSetListeners.clear();

    searchDocument = new DefaultStyledDocument();
    for (CachedRowSet rs : resultSets) {
        final JTable tempTable;
        FormLayout tableAreaLayout = new FormLayout("pref, 3dlu, pref:grow", "pref, fill:min(pref;50dlu):grow");
        DefaultFormBuilder tableAreaBuilder = new DefaultFormBuilder(tableAreaLayout);

        if (showSearchOnResults) {
            JLabel searchLabel = new JLabel(ICON);
            searchLabel.setToolTipText("Search");
            JTextField tableFilterTextField = new JTextField(searchDocument, null, 0);
            tableAreaBuilder.append(searchLabel, tableFilterTextField);
        }
        ResultSetTableModel model = new ResultSetTableModel(rs);
        StreamingRowSetListener rowSetListener = new StreamingRowSetListener(rs, model);
        rs.addRowSetListener(rowSetListener);
        rowSetListeners.add(rowSetListener);

        tempTable = new FancyExportableJTable(model, searchDocument);
        final TableModelListener tableListener = new TableModelListener() {
            public void tableChanged(TableModelEvent e) {
                tempTable.createDefaultColumnsFromModel();
            }
        };
        model.addTableModelListener(tableListener);

        // Allow users to select a single table cell.
        tempTable.setCellSelectionEnabled(true);

        tableAreaBuilder.nextLine();
        JScrollPane tableScrollPane = new JScrollPane(tempTable);
        tableScrollPane.setPreferredSize(new Dimension((int) tableScrollPane.getPreferredSize().getWidth(), 0));
        resultJTableScrollPanes.put(tempTable, tableScrollPane);
        tableAreaBuilder.append(tableScrollPane, 3);

        resultJTables.add((JTable) tempTable);
        tableToSQLMap.put(((JTable) tempTable), executor.getStatement());
        JPanel tempResultPanel = tableAreaBuilder.getPanel();
        resultTabPane.add(Messages.getString("SQLQuery.result"), tempResultPanel);
        resultTabPane.setSelectedIndex(1);

    }
    for (JTable table : resultJTables) {
        for (TableChangeListener l : tableListeners) {
            l.tableAdded(new TableChangeEvent(this, table));
        }
    }
}