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

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

Introduction

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

Prototype

public DefaultFormBuilder(FormLayout layout) 

Source Link

Document

Constructs a DefaultFormBuilder for the given layout.

Usage

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  w  w w .  j  a  v a 2s.co  m*/

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

    return builder.getPanel();
}

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

License:Open Source License

public FontSelector(Font font, String[] fontList, SPFontLoader fontLoader) {

    this.fontLoader = fontLoader;
    if (font == null) {
        if (fontList == null || fontList.length == 0) {
            throw new IllegalArgumentException("The fontList parameter requires at least one valid font.");
        }//from   w  w  w  .ja va 2s .co  m
        font = Font.decode(fontList[0]);
        if (font == null) {
            throw new IllegalArgumentException("The fontList[0] element cannot be loaded.");
        }
    }

    logger.debug("Creating new font selector with given font: " + font);

    this.originalFont = font;

    SelectionHandler selectionHandler = new SelectionHandler();
    fontNameList = new JList(fontList);
    fontNameList.addListSelectionListener(selectionHandler);

    fontSizeSpinner = new JSpinner(new SpinnerNumberModel(font.getSize(), 1, 200, 1));
    fontSizeSpinner.addChangeListener(selectionHandler);

    fontSizeList = new JList(FONT_SIZES);
    fontSizeList.addListSelectionListener(new ListSelectionListener() {
        public void valueChanged(ListSelectionEvent e) {
            if (fontSizeList.getSelectedValue() != null) {
                fontSizeSpinner.setValue((Integer) fontSizeList.getSelectedValue());
            }
        }
    });

    styleChoice = new JList(FontStyle.values());
    styleChoice.setSelectedValue(FontStyle.forCode(font.getStyle()), true);
    styleChoice.addListSelectionListener(selectionHandler);

    FormLayout layout = new FormLayout("pref:grow, 4dlu, pref, 4dlu, pref",
            "pref, 4dlu, pref, 4dlu, fill:pref:grow");
    layout.setHonorsVisibility(true);
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);
    CellConstraints cc = new CellConstraints();

    builder.add(new JScrollPane(fontNameList), cc.xywh(1, 1, 1, 3));
    builder.add(fontSizeSpinner, cc.xywh(3, 1, 1, 1));
    builder.add(new JScrollPane(fontSizeList), cc.xywh(3, 3, 1, 1));
    builder.add(new JScrollPane(styleChoice), cc.xywh(5, 1, 1, 3));

    previewArea.setBackground(Color.WHITE);
    previewArea.setPreferredSize(new Dimension(300, 100));
    builder.add(previewArea, cc.xywh(1, 5, 5, 1));

    // Set defaults after creating layout so the "scroll to visible" works
    fontSizeList.setSelectedValue(Integer.valueOf(font.getSize()), true);
    fontNameList.setSelectedValue(font.getFamily(), true);
    logger.debug(
            "Set family list to \"" + font.getFamily() + "\" and size to " + Integer.valueOf(font.getSize()));

    panel = builder.getPanel();

    previewFont(); // ensure view is up to date!
}

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 .j a  v a2s .c  o 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

/**
 * Creates all of the JTables for the result tab and adds them to the result tab.
 * @throws SQLException /*from w  w  w . j a  va 2  s  .co 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));
        }
    }
}

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

License:Open Source License

/**
 * @param question/*from w  ww  . j a  v a2  s .c om*/
 *            A question string that asks the user what the string to be
 *            replaced should actually be.
 * @param defaultResponseType
 *            The default button that will be highlighted.
 * @param defaultResponse
 *            The default response to use if the user wants to click through
 *            the dialog. This will be displayed as the editable default
 *            text and must be a String object.
 * @param okName
 *            The text that goes on the OK button.
 * @param cancelName
 *            The text that goes on the cancel button.
 */
public TextUserPrompter(Window owner, String question, UserPromptResponse defaultResponseType,
        Object defaultResponse, String okName, String cancelName) {
    this.owner = owner;
    this.defaultResponseType = defaultResponseType;
    textField = new JTextField((String) defaultResponse);

    DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("pref"));
    builder.setDefaultDialogBorder();
    builder.append(new JLabel(question));
    builder.nextLine();
    builder.append(textField);
    builder.nextLine();
    final JButton okButton = new JButton(new AbstractAction(okName) {
        public void actionPerformed(ActionEvent e) {
            response = UserPromptResponse.OK;
            prompt.dispose();
        }
    });
    final JButton cancelButton = new JButton(new AbstractAction(cancelName) {
        public void actionPerformed(ActionEvent e) {
            response = UserPromptResponse.CANCEL;
            prompt.dispose();
        }
    });
    JPanel okCancelBar = ButtonBarFactory.buildOKCancelBar(okButton, cancelButton);
    builder.append(okCancelBar);
    prompt = new JDialog(owner);
    prompt.add(builder.getPanel());
}

From source file:ca.sqlpower.wabit.swingui.action.RenameWabitServerWorkspaceAction.java

License:Open Source License

private DataEntryPanel createRenamePanel() {
    DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("pref, 4dlu, max(100dlu; pref):grow"));
    final JTextField nameField = new JTextField(session.getWorkspace().getName());
    builder.append("Name", nameField);
    final JPanel panel = builder.getPanel();
    return new DataEntryPanel() {

        public boolean applyChanges() {
            session.getWorkspace().setName(nameField.getText());
            return true;
        }/*  w ww .jav a 2s .c  om*/

        public void discardChanges() {
            //no-op
        }

        public JComponent getPanel() {
            return panel;
        }

        public boolean hasUnsavedChanges() {
            return false;
        }
    };
}

From source file:ca.sqlpower.wabit.swingui.enterprise.ServerInfoManager.java

License:Open Source License

/**
 * Creates a panel that displays the currently configured server
 * connections. New connections can be added from this panel and existing
 * connections can be modified or removed.
 * /*  w  w  w.jav  a2s .com*/
 * @param m_context
 *            A Wabit context that contains server connection information.
 * @param m_dialogOwner
 *            A component that will be used as the dialog owner for other
 *            panels.
 * @param closeAction
 *            An action that will properly close the object displaying the
 *            panel.
 */
public ServerInfoManager(WabitSessionContext m_context, Component m_dialogOwner, final Runnable closeAction) {
    this.context = m_context;
    this.dialogOwner = m_dialogOwner;
    DefaultFormBuilder builder = new DefaultFormBuilder(
            new FormLayout("pref:grow, 5dlu, pref", "pref, pref, pref"));

    serverInfos = new JList(new DefaultListModel());
    serverInfos.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(MouseEvent e) {
            if (e.getClickCount() == 2 && SwingUtilities.isLeftMouseButton(e)) {
                editSelectedServer();
            }
        }

    });
    JScrollPane scrollPane = new JScrollPane(serverInfos);
    scrollPane.setPreferredSize(new Dimension(400, 300));

    this.connectButton = new JButton("Connect");
    this.connectButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            SPServerInfo selectedItem = (SPServerInfo) serverInfos.getSelectedValue();

            Window dialogParent;
            if (dialogOwner instanceof Window) {
                dialogParent = (Window) dialogOwner;
            } else {
                dialogParent = SwingUtilities.getWindowAncestor(dialogOwner);
            }

            if (selectedItem != null) {
                LogInToServerAction action = new LogInToServerAction(dialogParent, selectedItem, context);
                action.actionPerformed(e);
            }
        }
    });

    // Build the GUI
    refreshInfoList();
    CellConstraints cc = new CellConstraints();
    builder.add(new JLabel("Available Server Connections:"), cc.xyw(1, 1, 3));
    builder.nextLine();
    builder.add(scrollPane, cc.xywh(1, 2, 1, 2));

    DefaultFormBuilder buttonBarBuilder = new DefaultFormBuilder(new FormLayout("pref"));
    buttonBarBuilder.append(new JButton(addAction));
    buttonBarBuilder.append(new JButton(editAction));
    buttonBarBuilder.append(new JButton(removeAction));
    buttonBarBuilder.append(connectButton);
    buttonBarBuilder.append(new JButton(new AbstractAction("Close") {
        public void actionPerformed(ActionEvent arg0) {
            closeAction.run();
        }
    }));
    builder.add(buttonBarBuilder.getPanel(), cc.xy(3, 2));
    builder.setDefaultDialogBorder();
    panel = builder.getPanel();
}

From source file:ca.sqlpower.wabit.swingui.enterprise.ServerInfoPanel.java

License:Open Source License

private JPanel buildUI(SPServerInfo si) {
    DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("pref, 4dlu, max(100dlu; pref):grow"));

    builder.append("Display Name", name = new JTextField(si.getName()));
    builder.append("Host", host = new JTextField(si.getServerAddress()));
    builder.append("Port", port = new JTextField(String.valueOf(si.getPort())));
    builder.append("Path", path = new JTextField(si.getPath()));
    builder.append("Username", username = new JTextField(si.getUsername()));
    builder.append("Password", password = new JPasswordField(si.getPassword()));

    builder.append(testButton = new JButton("Test Connection"));
    this.testButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            lookupServerInfo(true);/* w w  w  . jav a2s  .c  o  m*/
        }
    });

    builder.appendParagraphGapRow();

    return builder.getPanel();
}

From source file:ca.sqlpower.wabit.swingui.NewWorkspaceScreen.java

License:Open Source License

private void buildUI() {
    dialog.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    dialog.addWindowListener(new WindowAdapter() {
        @Override/*  w  w w  .j  a  v  a  2  s  .c  o m*/
        public void windowClosed(WindowEvent e) {
            if (databaseAdded) {
                SPObject currentEditor = session.getWorkspace().getEditorPanelModel();
                try {
                    final URI resource = WabitSwingSessionContextImpl.class
                            .getResource(WabitSessionContext.NEW_WORKSPACE_URL).toURI();
                    URL importURL = resource.toURL();
                    URLConnection urlConnection = importURL.openConnection();
                    InputStream in = new BufferedInputStream(urlConnection.getInputStream());
                    final OpenWorkspaceXMLDAO workspaceLoader = new OpenWorkspaceXMLDAO(context, in,
                            urlConnection.getContentLength());
                    workspaceLoader.importWorkspaces(session);
                } catch (Exception ex) {
                    throw new RuntimeException("Cannot find the templates file at " + "location "
                            + WabitSessionContext.NEW_WORKSPACE_URL);
                }
                session.getWorkspace().setEditorPanelModel(currentEditor);

                context.registerChildSession(session);
            }
            session.getWorkspace().removeDatabaseListChangeListener(workspaceDataSourceListener);
        }
    });

    DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("pref:grow"));
    final JLabel selectDSLabel = new JLabel("Select a data source for your new workspace.");
    selectDSLabel.setHorizontalAlignment(SwingConstants.CENTER);
    builder.append(selectDSLabel);
    builder.nextLine();
    final JLabel additionalDSLabel = new JLabel("(Additional data sources can be added later.)");
    additionalDSLabel.setHorizontalAlignment(SwingConstants.CENTER);
    builder.append(additionalDSLabel);
    builder.nextLine();
    builder.append(WorkspacePanel.createDBConnectionManager(session, dialog).getPanel());

    dialog.add(builder.getPanel());
}

From source file:ca.sqlpower.wabit.swingui.olap.OlapQueryPanel.java

License:Open Source License

private void buildUI() {
    final JComponent textQueryPanel;
    try {/*from   w w w . ja v  a  2s . c o m*/
        textQueryPanel = createTextQueryPanel();
    } catch (SQLException e) {
        throw new RuntimeException(e);
    }
    queryPanels = new JTabbedPane();

    Action executeAction = new AbstractAction("Execute", WabitIcons.RUN_ICON_32) {
        public void actionPerformed(ActionEvent e) {
            executeMdxAction.actionPerformed(e);
        }
    };
    toolBarBuilder.add(executeAction);
    toolBarBuilder.add(resetQueryButton);
    toolBarBuilder.addSeparator();

    ExportWabitObjectAction<OlapQuery> exportAction = new ExportWabitObjectAction<OlapQuery>(session, query,
            WabitIcons.EXPORT_ICON_32, "Export OLAP Query to Wabit file");
    toolBarBuilder.add(exportAction, "Export...");

    toolBarBuilder.add(new CreateLayoutFromQueryAction(session.getWorkspace(), query, query.getName()),
            "Create Report");

    toolBarBuilder.add(new NewChartAction(session, query), "Create Chart",
            new ImageIcon(QueryPanel.class.getClassLoader().getResource("icons/32x32/chart.png")));

    final JCheckBox nonEmptyRowsCheckbox = new JCheckBox("Omit Empty Rows");
    nonEmptyRowsCheckbox.setSelected(query.isNonEmpty());
    nonEmptyRowsCheckbox.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            try {
                query.setNonEmpty(nonEmptyRowsCheckbox.isSelected());
            } catch (Exception ex) {
                throw new RuntimeException(ex);
            }
        }
    });
    toolBarBuilder.add(nonEmptyRowsCheckbox);

    final JComponent viewComponent = cellSetViewer.getViewComponent();
    queryPanels.add("GUI", viewComponent);
    queryPanels.add("MDX", textQueryPanel);

    DefaultFormBuilder builder = new DefaultFormBuilder(
            new FormLayout("pref, 5dlu, pref, 5dlu, pref, 5dlu, pref"));
    builder.setBorder(BorderFactory.createEmptyBorder(5, 5, 0, 5));
    builder.append("OLAP Connections", databaseComboBox);
    builder.append(cubeNameLabel);
    if (query.getCurrentCube() != null) {
        cubeNameLabel.setText(query.getCurrentCube().getName());
    }
    builder.append(cubeChooserButton);

    panel = new JPanel(new BorderLayout());
    panel.setBorder(BorderFactory.createLineBorder(Color.GRAY));
    panel.add(builder.getPanel(), BorderLayout.NORTH);
    panel.add(queryPanels, BorderLayout.CENTER);
}