Example usage for com.jgoodies.forms.layout FormLayout FormLayout

List of usage examples for com.jgoodies.forms.layout FormLayout FormLayout

Introduction

In this page you can find the example usage for com.jgoodies.forms.layout FormLayout FormLayout.

Prototype

public FormLayout(ColumnSpec[] colSpecs) 

Source Link

Document

Constructs a FormLayout using the given column specifications.

Usage

From source file:br.com.loja.view.swing.PanelEntity.java

public JPanel getPanel(Class<? extends Switchable> entityClass) {

    DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout(""));
    builder.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
    builder.appendColumn("right:pref");
    builder.appendColumn("3dlu");
    builder.appendColumn("fill:max(pref; 180px)");

    builder.appendSeparator(entityClass.getSimpleName());

    for (Field f : ReflectionUtil.getAllFields(entityClass)) {

        if (!isMappable(f)) {
            continue;
        }//from   www . j  a v  a  2 s  .  c o m

        ComponentFactoryOld factory = new ComponentFactoryOld(f, serviceFactory);
        Component component = factory.getComponent();

        if (component != null) {
            if (component instanceof JTable) {
                JScrollPane scrollPane = new JScrollPane();
                scrollPane.setName("List " + component.getName());
                scrollPane.setPreferredSize(new Dimension(180, 240));
                scrollPane.setViewportView(component);
                builder.nextLine();
                builder.append(scrollPane.getName(), scrollPane);

            } else {
                builder.nextLine();
                builder.append(component.getName(), component);
            }
        }
    }

    return builder.getPanel();

}

From source file:br.com.loja.view.swing.PanelEntityEditor.java

private JPanel getPanelEntity() throws ServiceException {

    DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout(""));
    builder.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
    builder.appendColumn("right:pref");
    builder.appendColumn("3dlu");
    builder.appendColumn("fill:max(pref; 180px)");

    builder.appendSeparator(entityClass.getSimpleName());

    for (Field field : ReflectionUtil.getAllFields(entityClass)) {

        if (!isMappable(field)) {
            continue;
        }/*from  w  w w. j a  v  a  2 s  . com*/

        ComponentFactory factory = new ComponentProducer(field).getComponentFactory();
        Component component = factory.getComponent();

        if (component != null) {

            component.setName(field.getName());

            component = buildScrollPane(component);

            builder.nextLine();
            builder.append(component.getName(), component);

            if (Collection.class.isAssignableFrom(field.getType())) {
                addCardPanel(getPanelEditor(field), field.getName());
            }
        }
    }

    JPanel panel = builder.getPanel();
    panel.setName(entityClass.getSimpleName());
    componentsAttributes = ComponentUtil.getComponents(panel);

    return panel;

}

From source file:brainflow.app.presentation.ColorGradientEditor.java

private void initLayout() {

    JPanel mainPanel = new JPanel();
    FormLayout layout = new FormLayout("l:p:g, 12dlu, l:p, 3dlu, p:g");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout, mainPanel);
    layout.setColumnGroups(new int[][] { { 2, 4 } });
    builder.setLineGapSize(Sizes.dluX(8));

    builder.appendSeparator("Preview");

    colorBar = colorMap.createColorBar();
    colorBar.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
    builder.append(colorBar, 5);//from w  ww  .ja  v  a  2s  .c o m
    builder.appendSeparator("Colors");
    builder.nextLine();
    builder.setDefaultDialogBorder();
    builder.append(oneColorButton);

    builder.append("Color 1:", colorComboOne);
    builder.nextLine();
    builder.append(twoColorButton);

    builder.append("Color 2: ", colorComboTwo);

    setLayout(new BorderLayout());
    add(builder.getPanel(), BorderLayout.CENTER);

}

From source file:ca.sqlpower.architect.swingui.action.ExportDDLAction.java

License:Open Source License

public void actionPerformed(ActionEvent e) {
    final DDLExportPanel ddlPanel = new DDLExportPanel(getSession());

    Callable<Boolean> okCall, cancelCall;
    okCall = new Callable<Boolean>() {
        public Boolean call() {
            if (ddlPanel.applyChanges()) {

                DDLGenerator ddlg = ddlPanel.getGenerator();
                ddlg.setTargetSchema(ddlPanel.getSchemaField().getText());

                checkErrorsAndGenerateDDL(ddlg);

            }/* ww w.j  av a  2s  .c  o  m*/
            return Boolean.FALSE;
        }

        /**
         * This method will run the known critics over the target database
         * that we want to generate a DDL script for and display a dialog
         * containing errors if any are found. The user will then have the
         * choice to fix their data model or continue on ignoring the
         * current set of errors.
         * <p>
         * This method will also generate the DDL script using the
         * generateAndDisplayDDL method.
         */
        private void checkErrorsAndGenerateDDL(final DDLGenerator ddlg) {
            List<Criticism> criticisms = getSession().getWorkspace().getCriticManager()
                    .criticize(ddlg.getClass());
            if (criticisms.isEmpty()) {
                try {
                    generateAndDisplayDDL(ddlPanel, ddlg);
                } catch (Exception ex) {
                    ASUtils.showExceptionDialog(getSession(),
                            Messages.getString("ExportDDLAction.errorGeneratingDDLScript"), ex); //$NON-NLS-1$
                }
            } else {
                //build warning dialog
                final JDialog warningDialog = new JDialog(frame);
                JPanel mainPanel = new JPanel();
                DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("pref:grow"), mainPanel);
                builder.setDefaultDialogBorder();
                JTextArea explanation = new JTextArea(GENDDL_WARNINGS_EXPLANATION, 8, 60);
                explanation.setLineWrap(true);
                explanation.setWrapStyleWord(true);
                explanation.setEditable(false);
                explanation.setBackground(mainPanel.getBackground());
                explanation.setPreferredSize(new Dimension(0, 0));
                builder.append(explanation);

                builder.appendRow("10dlu");
                builder.nextLine();

                builder.appendRow("fill:pref:grow");
                builder.nextLine();

                final CriticismBucket bucket = new CriticismBucket();
                bucket.updateCriticismsToMatch(criticisms);
                JTable errorTable = CriticSwingUtil.createCriticTable(getSession(), bucket);
                builder.append(new JScrollPane(errorTable));
                builder.nextLine();

                JButton quickFixButton = new JButton(
                        new AbstractAction(Messages.getString("ExportDDLAction.quickFixAllOption")) { //$NON-NLS-1$
                            public void actionPerformed(ActionEvent e) {
                                warningDialog.dispose();
                                for (Criticism criticism : bucket.getCriticisms()) {
                                    if (!criticism.getFixes().isEmpty()) {
                                        for (CriticFix fix : criticism.getFixes()) {
                                            if (fix.getFixType().equals(FixType.QUICK_FIX)) {
                                                fix.apply();
                                                //applying the first quick fix each time as there is no 
                                                //decision what to apply by the user for this case
                                                break;
                                            }
                                        }
                                    }
                                }
                                checkErrorsAndGenerateDDL(ddlg);
                            }
                        });
                JButton ignoreButton = new JButton(
                        new AbstractAction(Messages.getString("ExportDDLAction.ignoreWarningsOption")) { //$NON-NLS-1$
                            public void actionPerformed(ActionEvent e) {
                                warningDialog.dispose();
                                try {
                                    generateAndDisplayDDL(ddlPanel, ddlg);
                                } catch (Exception ex) {
                                    ASUtils.showExceptionDialog(getSession(),
                                            Messages.getString("ExportDDLAction.errorGeneratingDDLScript"), ex); //$NON-NLS-1$
                                }
                            }
                        });
                JButton cancelButton = new JButton(
                        new AbstractAction(Messages.getString("ExportDDLAction.cancelOption")) { //$NON-NLS-1$
                            public void actionPerformed(ActionEvent e) {
                                //just dispose of the dialog and end this.
                                warningDialog.dispose();
                            }
                        });
                JButton recheckButton = new JButton(
                        new AbstractAction(Messages.getString("ExportDDLAction.recheckOption")) { //$NON-NLS-1$
                            public void actionPerformed(ActionEvent e) {
                                warningDialog.dispose();
                                checkErrorsAndGenerateDDL(ddlg);
                            }
                        });

                ButtonBarBuilder buttonBar = new ButtonBarBuilder();
                buttonBar.addGlue();
                buttonBar.addGriddedButtons(
                        new JButton[] { quickFixButton, ignoreButton, cancelButton, recheckButton });

                builder.append(buttonBar.getPanel());
                warningDialog.add(mainPanel);

                warningDialog.pack();
                TableUtils.fitColumnWidths(errorTable, 10);
                errorTable.setAutoResizeMode(JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS);
                warningDialog.setLocationRelativeTo(frame);
                warningDialog.setVisible(true);
            }
        }

        /**
         * This method is used for generating and displaying the DDL script
         * for the current target database using the given DDL generator.
         */
        private void generateAndDisplayDDL(final DDLExportPanel ddlPanel, DDLGenerator ddlg)
                throws SQLException, SQLObjectException {
            ddlg.generateDDLScript(getSession(), getSession().getTargetDatabase().getTables());

            SQLDatabase ppdb = new SQLDatabase(ddlPanel.getTargetDB());
            SQLScriptDialog ssd = new SQLScriptDialog(d,
                    Messages.getString("ExportDDLAction.previewSQLScriptDialogTitle"), "", false, //$NON-NLS-1$ //$NON-NLS-2$
                    ddlg, ppdb.getDataSource(), true, getSession());
            SPSwingWorker scriptWorker = ssd.getExecuteTask();
            ConflictFinderProcess cfp = new ConflictFinderProcess(ssd, ppdb, ddlg, ddlg.getDdlStatements(),
                    getSession());
            ConflictResolverProcess crp = new ConflictResolverProcess(ssd, cfp, getSession());
            cfp.setNextProcess(crp);
            crp.setNextProcess(scriptWorker);
            ssd.setExecuteTask(cfp);
            ssd.setVisible(true);
        }
    };

    cancelCall = new Callable<Boolean>() {
        public Boolean call() {
            ddlPanel.discardChanges();
            return Boolean.TRUE;
        }
    };
    d = DataEntryPanelBuilder.createDataEntryPanelDialog(ddlPanel, frame,
            Messages.getString("ExportDDLAction.forwardEngineerSQLDialogTitle"), //$NON-NLS-1$
            Messages.getString("ExportDDLAction.okOption"), //$NON-NLS-1$
            okCall, cancelCall);

    d.pack();
    d.setLocationRelativeTo(frame);
    d.setVisible(true);
}

From source file:ca.sqlpower.architect.swingui.action.ExportHTMLPanel.java

License:Open Source License

public ExportHTMLPanel(ArchitectSwingSession architect) {

    session = architect;//w w w .  j  ava  2  s  .c om
    FormLayout layout = new FormLayout("10dlu, 3dlu, pref:grow, 3dlu, pref");
    DefaultFormBuilder builder;
    if (logger.isDebugEnabled()) {
        builder = new DefaultFormBuilder(layout, new FormDebugPanel());
    } else {
        builder = new DefaultFormBuilder(layout);
    }

    ButtonGroup group = new ButtonGroup();
    builtin = new JRadioButton(Messages.getString("XSLTSelectionPanel.labelBuiltIn"));
    external = new JRadioButton(Messages.getString("XSLTSelectionPanel.labelExternal"));
    group.add(builtin);
    group.add(external);

    // place Radio buttons
    builder.append(builtin, 5);
    builder.appendRelatedComponentsGapColumn();
    if (builtinOptions != null) {
        builtinOptionPanel = builtinOptions.createPanel(session);
        builder.append("");
        builder.append(builtinOptionPanel, 4);
    } else {
        builtinOptionPanel = null;
    }

    builder.appendUnrelatedComponentsGapRow();
    builder.nextLine();
    builder.nextLine();

    builder.append(external, 5);

    // Selection of XSLT file
    templateFile = new JComboBox();
    templateFile.setRenderer(new ComboTooltipRenderer());
    templateFile.setEditable(true);

    builder.append("");
    builder.append(templateFile);

    selectTemplate = new JButton("...");
    builder.append(selectTemplate);

    builder.appendUnrelatedComponentsGapRow();
    builder.nextLine();
    builder.nextLine();

    // Output selection
    builder.append(new JLabel(Messages.getString("XSLTSelectionPanel.labelOutput")), 5);
    builder.nextLine();

    outputFile = new JTextField(30);
    builder.append("", outputFile);

    selectOutput = new JButton("...");
    builder.append(selectOutput);

    builder.appendUnrelatedComponentsGapRow();
    builder.nextLine();
    builder.nextLine();

    // "Statusbar"
    statusBar = new JLabel(" ");
    builder.append(statusBar, 5);

    builder.appendUnrelatedComponentsGapRow();
    builder.nextLine();

    selectTemplate.addActionListener(componentStateHandler);
    selectOutput.addActionListener(componentStateHandler);
    builtin.addActionListener(componentStateHandler);
    external.addActionListener(componentStateHandler);
    builtin.setSelected(true);

    startButton = new JDefaultButton(Messages.getString("XSLTSelectionPanel.startOption"));
    startButton.addActionListener(componentStateHandler);

    closeButton = new JButton(Messages.getString("XSLTSelectionPanel.closeOption"));
    closeButton.addActionListener(componentStateHandler);

    builder.nextLine();
    JPanel bp = ButtonBarFactory.buildRightAlignedBar(startButton, closeButton);
    builder.append(bp, 5);

    builder.setDefaultDialogBorder();
    panel = builder.getPanel();

    restoreSettings();
}

From source file:ca.sqlpower.architect.swingui.action.RefreshAction.java

License:Open Source License

public void actionPerformed(ActionEvent e) {
    if (dbTree == null) {
        dbTree = getSession().getDBTree();
    }/*from www. ja  v a 2s  . c o  m*/

    Set<SQLDatabase> databasesToRefresh = new HashSet<SQLDatabase>();
    for (TreePath tp : dbTree.getSelectionPaths()) {
        SQLObject so = (SQLObject) tp.getLastPathComponent();
        SQLDatabase db = SQLPowerUtils.getAncestor(so, SQLDatabase.class);
        if (db != null && !db.isPlayPenDatabase()) {
            databasesToRefresh.add(db);
        }
    }

    if (databasesToRefresh.isEmpty()) {
        JOptionPane.showMessageDialog(dbTree, "Please select a source database to refresh");
        return;
    }

    final SPSwingWorker worker = new RefreshMonitorableWorker(getSession(),
            (Window) SwingUtilities.getRoot(dbTree), databasesToRefresh);
    final Thread thread = new Thread(worker, "Refresh database worker");
    JProgressBar progressBar = new JProgressBar();
    progressBar.setIndeterminate(true);
    JLabel messageLabel = new JLabel("Refreshing selected databases.");
    ProgressWatcher.watchProgress(progressBar, worker, messageLabel);

    final JDialog dialog = new JDialog((Window) SwingUtilities.getRoot(dbTree), "Refresh");
    DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("pref:grow, 5dlu, pref"));
    builder.setDefaultDialogBorder();
    builder.append(messageLabel, 3);
    builder.nextLine();
    builder.append(progressBar, 3);
    builder.nextLine();
    builder.append(new JLabel(""), new JButton(new AbstractAction("Cancel") {
        public void actionPerformed(ActionEvent e) {
            worker.kill();
        }
    }));
    dialog.add(builder.getPanel());

    worker.addTaskTerminationListener(new TaskTerminationListener() {
        public void taskFinished(TaskTerminationEvent e) {
            dialog.dispose();
        }
    });

    dialog.pack();
    dialog.setModal(true);
    dialog.setLocationRelativeTo(getSession().getArchitectFrame());
    thread.start();
    dialog.setVisible(true);

}

From source file:ca.sqlpower.architect.swingui.ArchitectStatusBar.java

License:Open Source License

public ArchitectStatusBar() {
    DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("fill:pref:grow"), statusBar);
    builder.append(progressBarPanel);/*  ww w.j a v  a2  s.  co  m*/
}

From source file:ca.sqlpower.architect.swingui.ArchitectSwingSessionImpl.java

License:Open Source License

public void refresh() {
    if (isEnterpriseSession()) {
        try {//w w w  .  ja  v a  2s  .  c o m
            ArchitectSwingSession newSession = ((ArchitectSwingSessionContextImpl) getContext())
                    .createServerSession(((ArchitectClientSideSession) delegateSession).getProjectLocation(),
                            false);

            frame.addSession(newSession);

            JLabel messageLabel = new JLabel("Refreshing");
            JProgressBar progressBar = new JProgressBar();
            progressBar.setIndeterminate(true);

            final JDialog dialog = new JDialog(frame, "Refreshing");
            DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("pref:grow, 5dlu, pref"));
            builder.setDefaultDialogBorder();
            builder.append(messageLabel, 3);
            builder.nextLine();
            builder.append(progressBar, 3);
            dialog.add(builder.getPanel());

            dialog.pack();
            dialog.setLocation(frame.getX() + (frame.getWidth() - dialog.getWidth()) / 2,
                    frame.getY() + (frame.getHeight() - dialog.getHeight()) / 2);
            dialog.setAlwaysOnTop(true);
            dialog.setVisible(true);

            close();

            ((ArchitectClientSideSession) ((ArchitectSwingSessionImpl) newSession).getDelegateSession())
                    .getUpdater().addListener(new AbstractNetworkConflictResolver.UpdateListener() {
                        public boolean updatePerformed(AbstractNetworkConflictResolver updater) {
                            dialog.dispose();
                            return true; // true indicates that the listener should be removed
                        }

                        public boolean updateException(AbstractNetworkConflictResolver resolver, Throwable t) {
                            return false;
                        }

                        public void preUpdatePerformed(AbstractNetworkConflictResolver resolver) {
                            //do nothing
                        }

                        public void workspaceDeleted() {
                            // do nothing
                        }
                    });

            ((ArchitectClientSideSession) ((ArchitectSwingSessionImpl) newSession).getDelegateSession())
                    .startUpdaterThread();

        } catch (Exception e) {
            throw new RuntimeException("Failed to refresh", e);
        }
    }
}

From source file:ca.sqlpower.architect.swingui.critic.CriticManagerPanel.java

License:Open Source License

public CriticManagerPanel(ArchitectSwingSession session, CriticSettingsPanelFactory settingsPanelFactory) {

    this.settingsPanelFactory = settingsPanelFactory;
    mainPanel = new JPanel();
    DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("pref"));

    criticManager = session.getWorkspace().getCriticManager();
    for (CriticGrouping grouping : criticManager.getCriticGroupings()) {
        CriticGroupingPanel criticGroupingPanel = new CriticGroupingPanel(grouping, this);
        builder.append(criticGroupingPanel.getPanel());
        builder.nextLine();/*from  w w  w .j a v  a  2 s. c  o  m*/
        groupingPanels.add(criticGroupingPanel);
    }
    DefaultFormBuilder outerBuilder = new DefaultFormBuilder(
            new FormLayout("pref:grow", "min(pref;400dlu):grow"), mainPanel);
    JScrollPane criticsPane = new JScrollPane(builder.getPanel());
    criticsPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
    outerBuilder.append(criticsPane);
    outerBuilder.nextLine();
    ButtonBarBuilder2 buttonBar = new ButtonBarBuilder2();
    buttonBar.addButton(new AbstractAction("Restore Defaults") {
        public void actionPerformed(ActionEvent e) {
            if (doApplyChanges()) {
                criticManager.loadDefaults();
            }
        }
    });
    buttonBar.addButton(new AbstractAction("Set As Defaults") {
        public void actionPerformed(ActionEvent e) {
            try {
                if (doApplyChanges()) {
                    criticManager.saveAsDefaults();
                }
            } catch (BackingStoreException ex) {
                throw new RuntimeException(ex);
            }
        }
    });
    buttonBar.addGlue();
    outerBuilder.append(buttonBar.getPanel());
}

From source file:ca.sqlpower.architect.swingui.critic.CriticSettingsPanel.java

License:Open Source License

public CriticSettingsPanel(CriticAndSettings settings) {
    this.settings = settings;

    panel = new JPanel();
    severityCombo = new JComboBox(Severity.values());
    if (settings.getPlatformType().equals(StarterPlatformTypes.CONFIGURATION.getName())) {
        severityCombo.removeItem(Severity.WARNING);
    }/*w ww  . ja v  a2  s.c o m*/
    severityCombo.setSelectedItem(settings.getSeverity());
    //It would be nice if the layout used a pref:grow style for the first
    //column but it makes it difficult to set the preferred size correctly.
    DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("fill:pref:grow, 5dlu, pref"), panel);
    builder.append(new JLabel(settings.getName()));
    builder.append(severityCombo);

    settings.addSPListener(severitySettingListener);
}