List of usage examples for com.jgoodies.forms.builder DefaultFormBuilder DefaultFormBuilder
public DefaultFormBuilder(FormLayout layout)
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); }