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, StringResourceAccessor localizer) 

Source Link

Document

Constructs a DefaultFormBuilder for the given layout and resource bundle.

Usage

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.  j  a  v  a 2s. co 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);

            }/*  w  w w  .  jav a  2s.  c om*/
            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;//from w w  w.  ja  va2s . 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.ArchitectStatusBar.java

License:Open Source License

public ArchitectStatusBar() {
    DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("fill:pref:grow"), statusBar);
    builder.append(progressBarPanel);/*from  www. j  av  a  2s  .c o m*/
}

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

License:Open Source License

private void buildUI(SchemaPopulator targetSchemaPop, CatalogPopulator targetCatalogPop,
        SchemaPopulator sourceSchemaPop, CatalogPopulator sourceCatalogPop) {

    progressBar = new JProgressBar();
    progressBar.setIndeterminate(true);/*w  w  w.  j a v  a 2 s.co m*/
    progressBar.setVisible(false);

    sqlTypeDropdown = new JComboBox(DDLUtils.getDDLTypes(session.getDataSources()));
    sqlTypeDropdown.setRenderer(new DDLGeneratorListCellRenderer());
    sqlTypeDropdown.setName("sqlTypeDropDown"); //$NON-NLS-1$
    OutputChoiceListener listener = new OutputChoiceListener(sqlTypeDropdown);
    sqlTypeDropdown.setEnabled(false);
    sqlTypeDropdown.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            startCompareAction.setEnabled(isStartable());
        }
    });
    sqlButton = new JRadioButton();
    sqlButton.setName(OUTPUT_SQL);
    sqlButton.setActionCommand(OUTPUT_SQL);
    sqlButton.setSelected(false);
    sqlButton.addActionListener(listener);

    englishButton = new JRadioButton();
    englishButton.setName("englishButton"); //$NON-NLS-1$
    englishButton.setActionCommand(OUTPUT_ENGLISH);
    englishButton.setSelected(true);
    englishButton.addActionListener(listener);

    liquibaseButton = new JRadioButton();
    liquibaseButton.setName(OUTPUT_LIQUIBASE); //$NON-NLS-1$
    liquibaseButton.setActionCommand(OUTPUT_LIQUIBASE);
    liquibaseButton.setSelected(false);
    liquibaseButton.addActionListener(listener);

    showNoChanges = new JCheckBox();
    showNoChanges.setName("showNoChanges"); //$NON-NLS-1$

    includeIndexes = new JCheckBox(Messages.getString("CompareDMPanel.includeIndexes")); //$NON-NLS-1$
    includeIndexes.setName("includeIndexes"); //$NON-NLS-1$
    includeIndexes.setSelected(false);

    // Group the radio buttons.
    ButtonGroup outputGroup = new ButtonGroup();
    outputGroup.add(sqlButton);
    outputGroup.add(englishButton);
    outputGroup.add(liquibaseButton);

    startCompareAction = new StartCompareAction();
    startCompareAction.setEnabled(false);

    swapSourceTargetAction = new SwapSourceTargetAction();
    swapSourceTargetAction.setEnabled(true);

    buttonPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));

    FormLayout formLayout = new FormLayout("20dlu, 2dlu, pref, 4dlu," + // 1-4 //$NON-NLS-1$
            "0:grow, 4dlu, 0:grow, 4dlu," + // 5-8 //$NON-NLS-1$
            "0:grow, 4dlu, pref", // 9-11 //$NON-NLS-1$
            ""); //$NON-NLS-1$
    formLayout.setColumnGroups(new int[][] { { 5, 7, 9, } });
    JPanel panel = logger.isDebugEnabled() ? new FormDebugPanel() : new JPanel();
    DefaultFormBuilder builder = new DefaultFormBuilder(formLayout, panel);
    builder.setDefaultDialogBorder();

    CellConstraints cc = new CellConstraints();

    builder.append(statusComponent, 11);
    builder.nextLine();

    builder.appendSeparator(Messages.getString("CompareDMPanel.olderSeparator")); //$NON-NLS-1$
    builder.nextLine();
    builder.append(""); // takes up blank space //$NON-NLS-1$

    source.buildPartialUI(builder, true, sourceSchemaPop, sourceCatalogPop);

    builder.appendSeparator(Messages.getString("CompareDMPanel.newerSeparator")); //$NON-NLS-1$
    builder.appendRow(builder.getLineGapSpec());
    builder.appendRow("pref"); //$NON-NLS-1$
    builder.nextLine(2);
    builder.append(""); //$NON-NLS-1$

    target.buildPartialUI(builder, false, targetSchemaPop, targetCatalogPop);

    ActionListener radioButtonActionEnabler = new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            startCompareAction.setEnabled(isStartable());
        }
    };
    source.playPenRadio.addActionListener(radioButtonActionEnabler);
    source.physicalRadio.addActionListener(radioButtonActionEnabler);
    source.loadRadio.addActionListener(radioButtonActionEnabler);

    target.playPenRadio.addActionListener(radioButtonActionEnabler);
    target.physicalRadio.addActionListener(radioButtonActionEnabler);
    target.loadRadio.addActionListener(radioButtonActionEnabler);

    JLabel temp;

    builder.appendSeparator(Messages.getString("CompareDMPanel.outpurFormatSeparator")); //$NON-NLS-1$
    builder.appendRow(builder.getLineGapSpec());
    builder.appendRow("pref"); //$NON-NLS-1$
    builder.nextLine(2);
    builder.nextColumn(2);
    builder.append(sqlButton);

    JPanel ddlTypePanel = new JPanel(new BorderLayout(3, 3));
    ddlTypePanel.add(temp = new JLabel(Messages.getString("CompareDMPanel.sqlFor")), BorderLayout.WEST); //$NON-NLS-1$
    associate(temp, sqlButton);
    ddlTypePanel.add(sqlTypeDropdown, BorderLayout.CENTER); // ddl generator
    // type list
    ddlTypePanel.add(temp = new JLabel(Messages.getString("CompareDMPanel.makeOlderLookLikeNewer")), //$NON-NLS-1$
            BorderLayout.EAST);
    associate(temp, sqlButton);
    builder.append(ddlTypePanel, 3);

    builder.appendRow(builder.getLineGapSpec());
    builder.appendRow("pref"); //$NON-NLS-1$
    builder.nextLine(2);
    builder.nextColumn(2);
    builder.append(liquibaseButton);
    temp = builder.append(Messages.getString("CompareDMPanel.liqubaseScript")); //$NON-NLS-1$
    associate(temp, liquibaseButton);

    this.lbOptions = new LiquibaseOptionsPanel();

    builder.appendRow("pref"); //$NON-NLS-1$
    builder.nextLine(1);
    builder.nextColumn(2);
    lbOptions.getPanel().setVisible(false);
    builder.append(lbOptions.getPanel(), 9);

    builder.appendRow(builder.getLineGapSpec());
    builder.appendRow("pref"); //$NON-NLS-1$
    builder.nextLine(2);
    builder.nextColumn(2);
    builder.append(englishButton);
    temp = builder.append(Messages.getString("CompareDMPanel.englishDescriptions")); //$NON-NLS-1$
    associate(temp, englishButton);

    builder.appendRow(builder.getLineGapSpec());
    builder.appendRow("pref"); //$NON-NLS-1$
    builder.nextLine(2);
    builder.nextColumn(2);
    builder.append(showNoChanges);
    temp = builder.append(Messages.getString("CompareDMPanel.suppressSimilarities")); //$NON-NLS-1$
    associate(temp, showNoChanges);
    builder.append(includeIndexes);
    builder.nextLine();

    builder.appendSeparator(Messages.getString("CompareDMPanel.status")); //$NON-NLS-1$
    builder.appendRow(builder.getLineGapSpec());
    builder.appendRow("pref"); //$NON-NLS-1$
    builder.nextLine(2);
    statusLabel = new JLabel(""); //$NON-NLS-1$
    builder.add(statusLabel, cc.xy(5, builder.getRow()));
    builder.add(progressBar, cc.xyw(7, builder.getRow(), 5));

    setLayout(new BorderLayout());
    add(builder.getPanel());
    setPreferredSize(new Dimension(800, 600));
    try {
        restoreSettingsFromProject();
    } catch (SQLObjectException e) {
        logger.warn("Failed to save user CompareDM preferences!", e); //$NON-NLS-1$
    }
}

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);
    }/*from  w ww .  j av  a  2s  . c om*/
    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);
}

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

License:Open Source License

/**
 * Sets the {@link #panel} to be a new panel that can be used by the user to define
 * Kettle job properties.// w ww  .j  a  v  a  2 s .  c om
 */
private void buildUI() {
    KettleJob settings = session.getKettleJob();
    panel.setLayout(new FormLayout());
    panel.setPreferredSize(new Dimension(450, 300));

    nameField = new JTextField(settings.getJobName());
    databaseComboBox = new JComboBox();
    ASUtils.setupTargetDBComboBox(session, databaseComboBox);
    newDatabaseButton = new JButton();
    newDatabaseButton.setText(Messages.getString("KettleJobPanel.propertiesButton")); //$NON-NLS-1$
    newDatabaseButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            Window parentWindow = SPSUtils.getWindowInHierarchy(panel);
            ASUtils.showTargetDbcsDialog(parentWindow, session, databaseComboBox);
        }
    });

    schemaName = new JTextField(settings.getSchemaName());

    saveFileRadioButton = new JRadioButton(Messages.getString("KettleJobPanel.saveJobToFileOption"), //$NON-NLS-1$
            settings.isSavingToFile());

    filePath = new JTextField(settings.getFilePath());
    filePath.getDocument().addDocumentListener(new DocumentListener() {
        public void changedUpdate(DocumentEvent e) {
            copyFilePath();
        }

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

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

        private void copyFilePath() {
            File file = new File(filePath.getText());
            if (file != null) {
                File parentFile = file.getParentFile();
                transformationPath.setText("     " //$NON-NLS-1$
                        + ((parentFile == null || parentFile.getPath() == null) ? "" : parentFile.getPath())); //$NON-NLS-1$
            }
        }
    });
    browseFilePath = new JButton();
    browseFilePath.setText(Messages.getString("KettleJobPanel.browseButton")); //$NON-NLS-1$
    browseFilePath.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            JFileChooser chooser = new JFileChooser(session.getProjectLoader().getFile());
            chooser.addChoosableFileFilter(SPSUtils.XML_FILE_FILTER);
            int response = chooser.showSaveDialog(panel);
            if (response != JFileChooser.APPROVE_OPTION) {
                return;
            } else {
                File file = chooser.getSelectedFile();
                File parentFile = file.getParentFile();
                filePath.setText(file.getPath());
                if (parentFile != null) {
                    transformationPath.setText("     " + parentFile.getPath()); //$NON-NLS-1$
                }
            }
        }
    });

    File parentFile = new File(settings.getFilePath()).getParentFile();
    if (settings == null || parentFile == null || parentFile.getPath() == null) {
        transformationPath = new JLabel(""); //$NON-NLS-1$
    } else {
        transformationPath = new JLabel("     " + parentFile.getPath()); //$NON-NLS-1$
    }

    saveReposRadioButton = new JRadioButton(Messages.getString("KettleJobPanel.saveJobToRepositoryOption"), //$NON-NLS-1$
            !settings.isSavingToFile());

    Object[] connectionArray = session.getContext().getConnections().toArray();
    reposDB = new JComboBox(connectionArray);
    if (connectionArray.length > 0) {
        reposDB.setSelectedIndex(0);
    }
    reposPropertiesButton = new JButton();
    reposPropertiesButton.setText(Messages.getString("KettleJobPanel.propertiesButton")); //$NON-NLS-1$
    reposPropertiesButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            Window parentWindow = SPSUtils.getWindowInHierarchy(panel);
            ASUtils.showDbcsDialog(parentWindow, (JDBCDataSource) reposDB.getSelectedItem(), null);
        }
    });

    ButtonGroup saveByButtonGroup = new ButtonGroup();
    saveByButtonGroup.add(saveFileRadioButton);
    saveByButtonGroup.add(saveReposRadioButton);

    defaultJoinType = new JComboBox();
    for (int joinType = 0; joinType < MergeJoinMeta.join_types.length; joinType++) {
        defaultJoinType.addItem(MergeJoinMeta.join_types[joinType]);
    }
    defaultJoinType.setSelectedIndex(settings.getKettleJoinType());

    FormLayout formLayout = new FormLayout("10dlu, 2dlu, pref, 4dlu," + //1-4 //$NON-NLS-1$
            "0:grow, 4dlu, pref", //5-7 //$NON-NLS-1$
            ""); //$NON-NLS-1$
    DefaultFormBuilder builder = new DefaultFormBuilder(formLayout, panel);
    builder.nextColumn(2);
    builder.append(Messages.getString("KettleJobPanel.jobNameLabel")); //$NON-NLS-1$
    builder.append(nameField, 3);
    builder.nextLine();
    builder.append(""); //$NON-NLS-1$
    builder.append(Messages.getString("KettleJobPanel.targetDatabaseLabel")); //$NON-NLS-1$
    builder.append(databaseComboBox);
    builder.append(newDatabaseButton);
    builder.nextLine();
    builder.append(""); //$NON-NLS-1$
    builder.append(Messages.getString("KettleJobPanel.schemaNameLabel")); //$NON-NLS-1$
    builder.append(schemaName, 3);
    builder.nextLine();
    builder.append(""); //$NON-NLS-1$
    builder.append(Messages.getString("KettleJobPanel.defaultJoinTypeLabel")); //$NON-NLS-1$
    builder.append(defaultJoinType);
    builder.nextLine();
    builder.append(""); //$NON-NLS-1$
    builder.append(saveFileRadioButton, 3);
    builder.nextLine();
    builder.append(""); //$NON-NLS-1$
    builder.append(Messages.getString("KettleJobPanel.pathLabel")); //$NON-NLS-1$
    builder.append(filePath);
    builder.append(browseFilePath);
    builder.nextLine();
    builder.append(""); //$NON-NLS-1$
    builder.append(""); //$NON-NLS-1$
    JLabel transPathLabel = new JLabel(Messages.getString("KettleJobPanel.transfomationsPathLabel")); //$NON-NLS-1$
    builder.append(transPathLabel, 3);
    builder.nextLine();
    builder.append(""); //$NON-NLS-1$
    builder.append(""); //$NON-NLS-1$
    builder.append(transformationPath, 3);
    builder.nextLine();
    builder.append(""); //$NON-NLS-1$
    builder.append(saveReposRadioButton, 3);
    builder.nextLine();
    builder.append(""); //$NON-NLS-1$
    builder.append(Messages.getString("KettleJobPanel.repositoryLabel")); //$NON-NLS-1$
    builder.append(reposDB);
    builder.append(reposPropertiesButton);
    builder.nextLine();
    builder.append(""); //$NON-NLS-1$
    //TODO use CompareDM to check if the target database and the playpen are the same
    JLabel check = new JLabel(Messages.getString("KettleJobPanel.checkTargetSameAsPlaypenWarning")); //$NON-NLS-1$
    builder.append(check, 5);

}

From source file:ca.sqlpower.architect.swingui.olap.JoinEntryPanel.java

License:Open Source License

private void buildUI() {
    DefaultFormBuilder builder = new DefaultFormBuilder(
            new FormLayout("fill:max(500dlu;pref):grow", "pref, fill:max(300dlu;pref):grow"), panel);
    JToolBar toolbar = new JToolBar();
    toolbar.add(pen.getDeleteButton());//from   ww w . jav  a 2s.c  om
    toolbar.add(pen.getCreateJoinButton());
    toolbar.addSeparator();
    toolbar.add(pen.getZoomSliderContainer());
    builder.append(toolbar);
    builder.nextLine();
    JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
    splitPane.add(pen.getScrollPane(), JSplitPane.LEFT);

    SQLObjectRoot root = new SQLObjectRoot();
    TreeModel treeModel;
    DBTree tree;
    try {
        root.addChild(db);
        tree = new DBTree(session);
        treeModel = new DBTreeModel(root, tree);
    } catch (SQLObjectException e) {
        throw new RuntimeException(e);
    }
    tree.setModel(treeModel);
    tree.setPopupMenuEnabled(false);

    JPanel treePanel = new JPanel(new BorderLayout());
    treePanel.add(new JLabel(db.getName()), BorderLayout.NORTH);
    treePanel.add(new JScrollPane(tree));

    splitPane.add(treePanel, JSplitPane.RIGHT);
    splitPane.setResizeWeight(0.95);

    builder.append(splitPane);
}

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

License:Open Source License

/**
 * Creates but does not show a new profile result viewer dialog.
 *///from w  ww .j  a v a 2s .c  o m
public ProfileResultsViewer(ProfileManager pm) {
    this.profileManager = pm;
    this.results = new ArrayList<TableProfileResult>();
    this.frame = new JFrame(Messages.getString("ProfileResultsViewer.frameTitle")); //$NON-NLS-1$
    frame.setIconImage(ASUtils.getFrameIconImage());
    frame.addWindowListener(new WindowAdapter() {
        public void windowClosed(WindowEvent e) {
            tm.cleanup();
            profileManager.removeProfileChangeListener(profileChangeListener);
        }
    });

    // The UI for this window is shown in three tabs. Each tab is defined in
    // its own block, both for readability, and to prevent too much
    // interdependency between them.
    JTabbedPane tabPane = new JTabbedPane();

    tm = new ProfileTableModel(profileManager);
    profileManager.addProfileChangeListener(profileChangeListener);

    // This listener monitors for double clicks in the table view tab, and
    // responds by showing the appropriate column in the column view tab.
    ProfilePanelMouseListener profilePanelMouseListener = new ProfilePanelMouseListener();

    // These listeners keep the two table selectors (one on the graph tab,
    // and one on the table view tab) in sync
    ComboBoxSynchronizationListener graphPanelListener = new ComboBoxSynchronizationListener();
    ComboBoxSynchronizationListener tableViewListener = new ComboBoxSynchronizationListener();

    // The first tab is the column specific tab. It contains a ProfilePanel,
    // which contains a ProfileGraphPanel, which displays the column
    // information and pie chart.
    {
        JPanel profilePanel = new JPanel(new BorderLayout());
        final ProfilePanel p = new ProfilePanel(tm, profileManager);

        p.setTabPane(tabPane);
        p.setTableModel(tm);
        profilePanel.add(p, BorderLayout.CENTER);
        ButtonBarBuilder2 profileButtons = new ButtonBarBuilder2();
        profileButtons.addGlue();
        profileButtons.addFixed(new JButton(closeAction));
        profilePanel.add(profileButtons.getPanel(), BorderLayout.SOUTH);
        tabPane.addTab(Messages.getString("ProfileResultsViewer.graphViewTab"), profilePanel); //$NON-NLS-1$

        profilePanelMouseListener.setProfilePanel(p);
        p.getTableSelector().addActionListener(graphPanelListener);
        tableViewListener.setTarget(p.getTableSelector());

        frame.addWindowListener(new WindowListener() {
            @Override
            public void windowOpened(WindowEvent e) {
            }

            @Override
            public void windowIconified(WindowEvent e) {
            }

            @Override
            public void windowDeiconified(WindowEvent e) {
            }

            @Override
            public void windowDeactivated(WindowEvent e) {
            }

            @Override
            public void windowClosing(WindowEvent e) {
            }

            @Override
            public void windowClosed(WindowEvent e) {
                p.close();
                if (tableNotesFieldListener != null) {
                    tableNotesFieldListener.cancel();
                }
            }

            @Override
            public void windowActivated(WindowEvent e) {
            }
        });
    }

    // This tab displays a table that shows data for all columns from the
    // selected table, or all tables.
    {
        TableModelSearchDecorator searchDecorator = new TableModelSearchDecorator(tm);
        final TableFilterDecorator filterTableModel = new TableFilterDecorator(searchDecorator);
        TableModelSortDecorator tableModelSortDecorator = new TableModelSortDecorator(filterTableModel);
        final ProfileJTable viewTable = new ProfileJTable(tableModelSortDecorator);
        searchDecorator.setTableTextConverter(viewTable);
        TableModelColumnAutofit columnAutoFit = new TableModelColumnAutofit(tableModelSortDecorator, viewTable);

        JTableHeader tableHeader = viewTable.getTableHeader();
        tableModelSortDecorator.setTableHeader(tableHeader);
        columnAutoFit.setTableHeader(tableHeader);

        viewTable.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
        profilePanelMouseListener.setTabPane(tabPane);
        viewTable.addMouseListener(profilePanelMouseListener);
        viewTable.getModel().addTableModelListener(new TableModelListener() {
            public void tableChanged(TableModelEvent e) {
                TableUtils.fitColumnWidths(viewTable, 2);
            }
        });
        JScrollPane editorScrollPane = new JScrollPane(viewTable);
        editorScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        editorScrollPane.setPreferredSize(new Dimension(800, 600));
        editorScrollPane.setMinimumSize(new Dimension(10, 10));

        JPanel tableViewPane = new JPanel(new BorderLayout());

        final JTextArea notesField;
        if (profileManager.getWorkspaceContainer() instanceof ArchitectSession
                && ((ArchitectSession) profileManager.getWorkspaceContainer()).isEnterpriseSession()) {

            notesField = new JTextArea();
            notesField.setEnabled(false); // Kind of a hack, but the default selection is all tables, so this shoudn't be enabled
            notesField.setText("Select a Table");
            JScrollPane notesScroll = new JScrollPane(notesField);
            notesScroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
            notesScroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
            notesScroll.setMinimumSize(new Dimension(0, 50));
            JPanel notesPanel = new JPanel(new BorderLayout());
            notesPanel.add(new JLabel("Table Profile Notes:"), BorderLayout.NORTH);
            notesPanel.add(notesScroll, BorderLayout.CENTER);

            JSplitPane tableViewSplit = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
            tableViewSplit.setTopComponent(editorScrollPane);
            tableViewSplit.setBottomComponent(notesPanel);

            tableViewPane.add(tableViewSplit, BorderLayout.CENTER);
        } else {
            tableViewPane.add(editorScrollPane);
            notesField = null;
        }

        JPanel searchPanel = new JPanel();
        {
            FormLayout layout = new FormLayout(
                    "4dlu, pref, 4dlu, pref, 4dlu, pref:grow, 4dlu, pref, 4dlu, pref, 4dlu", "pref");
            DefaultFormBuilder builder = new DefaultFormBuilder(layout, searchPanel);
            CellConstraints cc = new CellConstraints();

            JLabel tableLabel = new JLabel("Table:");
            tableSelector = new JComboBox();
            tableSelector.setRenderer(new DefaultListCellRenderer() {
                @Override
                public Component getListCellRendererComponent(JList list, Object value, int index,
                        boolean isSelected, boolean cellHasFocus) {
                    TableProfileResult tpr = (TableProfileResult) value;
                    StringBuffer buf = new StringBuffer();
                    if (tpr != null) {
                        buf.append(tpr.getProfiledObject().getName());
                        buf.append(" (");
                        DateFormat df = DateFormat.getDateTimeInstance();
                        buf.append(df.format(new Date(tpr.getCreateStartTime())));
                        buf.append(")");
                    } else {
                        buf.append("All");
                    }
                    return super.getListCellRendererComponent(list, buf.toString(), index, isSelected,
                            cellHasFocus);
                }
            });
            tableSelector.addActionListener(new ActionListener() {
                private AbstractSPListener tableNotesListener;

                public void actionPerformed(ActionEvent e) {
                    final TableProfileResult tpr = (TableProfileResult) tableSelector.getSelectedItem();
                    filterTableModel.setFilter(tpr);

                    if (notesField != null) {
                        if (tableNotesFieldListener != null) {
                            notesField.getDocument().removeDocumentListener(tableNotesFieldListener);
                            tableNotesFieldListener.cancel();
                        }
                        if (currentTable != null) {
                            currentTable.removeSPListener(tableNotesListener);
                        }
                        currentTable = tpr;
                        if (tpr != null) {
                            notesField.setText(tpr.getNotes());
                            tableNotesListener = new AbstractSPListener() {
                                @Override
                                public void propertyChanged(PropertyChangeEvent evt) {
                                    if ("notes".equals(evt.getPropertyName())) {
                                        if (!evt.getNewValue().equals(notesField.getText())) {
                                            notesField.setText((String) evt.getNewValue());
                                        }
                                    }
                                }
                            };
                            tpr.addSPListener(tableNotesListener);
                            tableNotesFieldListener = new TimedDocumentListener(
                                    tpr.getProfiledObject().getName(), 2500) {
                                @Override
                                public void textChanged() {
                                    final String notesText = notesField.getText();
                                    profileManager.getRunnableDispatcher().runInForeground(new Runnable() {
                                        public void run() {
                                            if (!tpr.getNotes().equals(notesText)) {
                                                tpr.setNotes(notesText);
                                            }
                                        }
                                    });
                                }
                            };
                            notesField.setEnabled(true);
                        } else {
                            notesField.setEnabled(false);
                            notesField.setText("Select a Table");
                            tableNotesFieldListener = null;
                        }
                        if (tableNotesFieldListener != null) {
                            notesField.getDocument().addDocumentListener(tableNotesFieldListener);
                        }
                    }
                }
            });
            tableSelector.addActionListener(tableViewListener);
            graphPanelListener.setTarget(tableSelector);

            JLabel searchLabel = new JLabel(Messages.getString("ProfileResultsViewer.search")); //$NON-NLS-1$
            JTextField searchField = new JTextField(searchDecorator.getDoc(), "", 25); //$NON-NLS-1$
            searchField.setEditable(true);

            builder.add(tableLabel, cc.xy(2, 1));
            builder.add(tableSelector, cc.xy(4, 1));
            builder.add(searchLabel, cc.xy(8, 1));
            builder.add(searchField, cc.xy(10, 1));
        }

        tableViewPane.add(searchPanel, BorderLayout.NORTH);
        ButtonBarBuilder2 tableButtons = new ButtonBarBuilder2();
        tableButtons.addGlue();
        tableButtons.addFixed(
                new JButton(new SaveProfileAction(frame, Messages.getString("ProfileResultsViewer.PDFExport"),
                        viewTable, SaveProfileAction.SaveableFileType.PDF)));
        tableButtons.addFixed(
                new JButton(new SaveProfileAction(frame, Messages.getString("ProfileResultsViewer.CSVExport"),
                        viewTable, SaveProfileAction.SaveableFileType.CSV)));
        tableButtons.addFixed(
                new JButton(new SaveProfileAction(frame, Messages.getString("ProfileResultsViewer.HTMLExport"),
                        viewTable, SaveProfileAction.SaveableFileType.HTML)));
        tableButtons.addFixed(new JButton(closeAction));
        tableViewPane.add(tableButtons.getPanel(), BorderLayout.SOUTH);
        tabPane.addTab(Messages.getString("ProfileResultsViewer.tableViewTab"), tableViewPane); //$NON-NLS-1$
    }

    // This tab displays a table with top value information from all columns.
    {
        final MultiFreqValueCountTableModel columnTableModel = new MultiFreqValueCountTableModel(tm);

        JTextField columnSearchField = new JTextField("", 25); //$NON-NLS-1$
        final FancyExportableJTable columnTable = new FancyExportableJTable(columnTableModel,
                columnSearchField.getDocument());
        columnTable.getTableModelSortDecorator().setColumnComparator(columnTableModel.getColumnClass(2),
                new ColumnValueCount.ColumnValueComparator());
        columnTableModel.addTableModelListener(new TableModelListener() {
            public void tableChanged(TableModelEvent e) {
                TableUtils.fitColumnWidths(columnTable, 15);
            }
        });
        columnTable.setColumnFormatter(4, new PercentTableCellRenderer(false).getFormat());
        columnTable.setColumnFormatter(5, new DateTableCellRenderer().getFormat());

        for (int i = 0; i < columnTableModel.getColumnCount(); i++) {
            columnTable.getColumnModel().getColumn(i).setCellRenderer(columnTableModel.getCellRenderer(i));
        }
        JPanel columnViewerPanel = new JPanel(new BorderLayout());
        columnViewerPanel.add(new JScrollPane(columnTable), BorderLayout.CENTER);

        JPanel columnSearchPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
        columnSearchPanel.add(new JLabel(Messages.getString("ProfileResultsViewer.search"))); //$NON-NLS-1$
        columnSearchPanel.add(columnSearchField);
        columnViewerPanel.add(columnSearchPanel, BorderLayout.NORTH);

        ButtonBarBuilder2 columnButtonBar = new ButtonBarBuilder2();
        columnButtonBar.addGlue();
        final JButton csvExportButton = new JButton(columnTable.getExportCSVAction());
        csvExportButton.setText(Messages.getString("ProfileResultsViewer.CSVExport"));
        columnButtonBar.addFixed(csvExportButton);
        final JButton htmlExportButton = new JButton(columnTable.getExportHTMLAction());
        htmlExportButton.setText(Messages.getString("ProfileResultsViewer.HTMLExport"));
        columnButtonBar.addFixed(htmlExportButton);
        columnButtonBar.addFixed(new JButton(closeAction));
        columnViewerPanel.add(columnButtonBar.getPanel(), BorderLayout.SOUTH);
        tabPane.addTab(Messages.getString("ProfileResultsViewer.columnViewTab"), columnViewerPanel);
    }

    frame.add(tabPane, BorderLayout.CENTER);

    frame.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
    frame.pack();
    frame.setLocationRelativeTo(null);
    SPSUtils.makeJDialogCancellable(frame, null);
}

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

License:Open Source License

public void setup() {
    com.jgoodies.forms.layout.FormLayout layout = new com.jgoodies.forms.layout.FormLayout("pref,4dlu,pref"); //$NON-NLS-1$
    DefaultFormBuilder fb = new DefaultFormBuilder(layout, new JPanel());
    setLayout(layout);/*from   ww w .  j  av a  2  s .  co  m*/
    fb.append(Messages.getString("ProjectSettingsPanel.snapshotSourceDbOption"), //$NON-NLS-1$
            saveEntireSource = new JCheckBox());
    fb.nextLine();
    fb.appendUnrelatedComponentsGapRow();
    fb.nextLine();

    fb.append(Messages.getString("ProjectSettingsPanel.numCommonProfileValues"), //$NON-NLS-1$
            numberOfFreqValues = new JTextField("", 6));
    fb.nextLine();
    fb.appendUnrelatedComponentsGapRow();
    fb.nextLine();

    fb.append(Messages.getString("ProjectSettingsPanel.profileMode"), //$NON-NLS-1$
            profileMode = new JComboBox(session.getProfileManager().getProfileCreators().toArray()));
    fb.nextLine();
    fb.appendUnrelatedComponentsGapRow();
    fb.nextLine();

    fb.append(new JLabel(Messages.getString("ProjectSettingsPanel.relationshipLineStyle"))); //$NON-NLS-1$
    fb.append(rectilinearRelationships = new JRadioButton(
            Messages.getString("ProjectSettingsPanel.rectilinearLineOption"))); //$NON-NLS-1$

    fb.nextLine();

    fb.append("", directRelationships = new JRadioButton( //$NON-NLS-1$
            Messages.getString("ProjectSettingsPanel.directLineOption")));
    ButtonGroup lineStyleGroup = new ButtonGroup();
    lineStyleGroup.add(rectilinearRelationships);
    lineStyleGroup.add(directRelationships);

    fb.nextLine();
    fb.appendUnrelatedComponentsGapRow();
    fb.nextLine();

    fb.append(new JLabel(Messages.getString("ProjectSettingsPanel.displayPhysicalOrLogical"))); //$NON-NLS-1$
    fb.append(logicalNames = new JRadioButton(Messages.getString("ProjectSettingsPanel.displayLogicalNames"))); //$NON-NLS-1$
    fb.nextLine();

    fb.append("", //$NON-NLS-1$
            physicalNames = new JRadioButton(Messages.getString("ProjectSettingsPanel.displayPhysicalNames")));
    ButtonGroup nameDisplay = new ButtonGroup();
    nameDisplay.add(logicalNames);
    nameDisplay.add(physicalNames);

    fb.nextLine();
    fb.appendUnrelatedComponentsGapRow();
    fb.nextLine();

    fb.append(new JLabel(Messages.getString("ProjectSettingsPanel.visibilityOfRelationshipLabel"))); //$NON-NLS-1$
    fb.append(displayRelationshipLabel = new JRadioButton(
            Messages.getString("ProjectSettingsPanel.displayRelationshipLabel"))); //$NON-NLS-1$

    fb.nextLine();

    fb.append("", hideRelationshipLabel = new JRadioButton( //$NON-NLS-1$
            Messages.getString("ProjectSettingsPanel.hideRelationshipLabel")));
    ButtonGroup DisplayRelationshipLabel = new ButtonGroup();
    DisplayRelationshipLabel.add(displayRelationshipLabel);
    DisplayRelationshipLabel.add(hideRelationshipLabel);

    fb.nextLine();
    fb.appendUnrelatedComponentsGapRow();
    fb.nextLine();

    fb.append(showAll = new JRadioButton(Messages.getString("ProjectSettingsPanel.showAll"))); //$NON-NLS-1$
    fb.append(showPkTag = new JCheckBox(Messages.getString("ProjectSettingsPanel.showPKTags"))); //$NON-NLS-1$

    fb.nextLine();

    fb.append(showPkFkUniqueIndexed = new JRadioButton(
            Messages.getString("ProjectSettingsPanel.showPKFKUniqueIndexed"))); //$NON-NLS-1$
    fb.append(showFkTag = new JCheckBox(Messages.getString("ProjectSettingsPanel.showFKTags"))); //$NON-NLS-1$

    fb.nextLine();

    fb.append(showPkFkUnique = new JRadioButton(Messages.getString("ProjectSettingsPanel.showPKFKUnique"))); //$NON-NLS-1$
    fb.append(showAkTag = new JCheckBox(Messages.getString("ProjectSettingsPanel.showAKTags"))); //$NON-NLS-1$

    fb.nextLine();

    fb.append(showPkFk = new JRadioButton(Messages.getString("ProjectSettingsPanel.showPKFK"))); //$NON-NLS-1$

    fb.nextLine();

    fb.append(showPk = new JRadioButton(Messages.getString("ProjectSettingsPanel.showPK"))); //$NON-NLS-1$

    fb.nextLine();

    ButtonGroup column_show_settings = new ButtonGroup();
    column_show_settings.add(showAll);
    column_show_settings.add(showPkFkUniqueIndexed);
    column_show_settings.add(showPkFkUnique);
    column_show_settings.add(showPkFk);
    column_show_settings.add(showPk);

    fb.setDefaultDialogBorder();
    this.panel = fb.getPanel();
}