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

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

Introduction

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

Prototype

public JLabel append(String textWithMnemonic) 

Source Link

Document

Adds a text label to the panel and proceeds to the next column.

Usage

From source file:ca.sqlpower.architect.swingui.enterprise.ServerProjectsManagerPanel.java

License:Open Source License

public ServerProjectsManagerPanel(ArchitectSwingSession session, ArchitectSessionContext context,
        Component dialogOwner, Action closeAction) {
    this.session = session;
    this.dialogOwner = dialogOwner;
    this.context = context;
    this.closeAction = closeAction;

    ArchitectClientSideSession.getCookieStore().clear();

    DefaultFormBuilder builder = new DefaultFormBuilder(
            new FormLayout("pref:grow, 5dlu, pref:grow, 5dlu, pref", "pref, pref, pref"));

    servers = new JList(new DefaultListModel());
    servers.addMouseListener(new MouseAdapter() {
        @Override/*from   w  w w  . j  av a  2 s. co m*/
        public void mouseReleased(MouseEvent e) {
            if (SwingUtilities.isLeftMouseButton(e)) {
                refreshInfoList();
            }
        }
    });

    DefaultListModel serversModel = (DefaultListModel) servers.getModel();
    serversModel.removeAllElements();
    if (context.getServerManager().getServers(false).size() > 0) {
        for (SPServerInfo serverInfo : context.getServerManager().getServers(false)) {
            serversModel.addElement(serverInfo);
        }
    } else {
        serversModel.addElement("No Servers");
        servers.setEnabled(false);
    }

    projects = new JList(new DefaultListModel());
    projects.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseReleased(MouseEvent e) {
            refreshPanel();
            if (e.getClickCount() == 2 && SwingUtilities.isLeftMouseButton(e)) {
                openAction.actionPerformed(null);
            }
        }
    });

    JScrollPane projectsPane = new JScrollPane(projects);
    projectsPane.setPreferredSize(new Dimension(250, 300));

    JScrollPane serverPane = new JScrollPane(servers);
    serverPane.setPreferredSize(new Dimension(250, 300));

    JButton securityButton = new JButton(openSecurityManagerPanelAction);

    refreshInfoList();
    CellConstraints cc = new CellConstraints();
    builder.add(new JLabel("Servers:"), cc.xyw(1, 1, 2));
    builder.add(new JLabel("Projects:"), cc.xyw(3, 1, 2));
    builder.nextLine();
    builder.add(serverPane, cc.xywh(1, 2, 1, 2));
    builder.add(projectsPane, cc.xywh(3, 2, 1, 2));

    DefaultFormBuilder buttonBarBuilder = new DefaultFormBuilder(new FormLayout("pref"));
    buttonBarBuilder.append(new JButton(refreshAction));
    buttonBarBuilder.append(securityButton);
    buttonBarBuilder.append(new JButton(newAction));
    buttonBarBuilder.append(new JButton(openAction));
    buttonBarBuilder.append(new JButton(uploadAction));
    buttonBarBuilder.append(new JButton(deleteAction));
    buttonBarBuilder.append(new JButton(closeAction));
    builder.add(buttonBarBuilder.getPanel(), cc.xy(5, 2));
    builder.setDefaultDialogBorder();
    panel = builder.getPanel();
}

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  w  w. j  av a2s. 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());//  w  w  w  . j ava  2 s .c  o m
    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.olap.ViewEntryPanel.java

License:Open Source License

public ViewEntryPanel(ArchitectSwingSession session, SQLDatabase db, CubeEditPanel cubeEditPanel) {
    this.cubeEditPanel = cubeEditPanel;
    DefaultFormBuilder builder = new DefaultFormBuilder(
            new FormLayout("pref, 5dlu:grow, pref, 3dlu, pref", "pref, fill:pref:grow"));

    queryComponents = new SQLQueryUIComponents(session, session.getDataSources(), session, builder.getPanel());
    queryComponents.getRowLimitSpinner().setValue(Integer.valueOf(1000));
    queryComponents.getDatabaseComboBox().setSelectedItem(db.getDataSource());

    JToolBar toolbar = new JToolBar();
    toolbar.add(queryComponents.getPrevQueryButton());
    toolbar.add(queryComponents.getNextQueryButton());
    toolbar.addSeparator();/* ww  w.j  a  v a  2  s  .c  om*/
    toolbar.add(queryComponents.getExecuteButton());
    toolbar.add(queryComponents.getStopButton());
    toolbar.add(queryComponents.getClearButton());
    toolbar.addSeparator();
    toolbar.add(queryComponents.getUndoButton());
    toolbar.add(queryComponents.getRedoButton());
    toolbar.addSeparator();
    toolbar.add(new JLabel(db.getName()));
    builder.append(toolbar);
    builder.append("Row Limit", queryComponents.getRowLimitSpinner());
    builder.nextLine();

    queryArea = queryComponents.getQueryArea();
    builder.append(new JScrollPane(queryArea), 5);
    queryArea.setText(cubeEditPanel.getSelectText());

    JSplitPane rightSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
    rightSplitPane.setTopComponent(builder.getPanel());
    rightSplitPane.setBottomComponent(queryComponents.getResultTabPane());
    rightSplitPane
            .setPreferredSize(new Dimension((int) Math.max(400, rightSplitPane.getPreferredSize().getWidth()),
                    (int) Math.max(500, rightSplitPane.getPreferredSize().getHeight())));
    rightSplitPane.setResizeWeight(0.5);

    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);

    splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
    splitPane.setLeftComponent(tree);
    splitPane.setRightComponent(rightSplitPane);
    splitPane.setResizeWeight(0.2);

}

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

License:Open Source License

/**
 * This method allows the selection of the directory. Null is returned if the user cancelled.
 *//*w  ww .j a v  a 2  s .  co m*/
public RepositoryDirectory selectDirectory(Repository repo) {
    final JDialog chooserDialog = new JDialog(parent);
    chooserDialog.setTitle(Messages.getString("UserRepositoryDirectoryChooser.selectRepositoryDialogTitle")); //$NON-NLS-1$
    FormLayout layout = new FormLayout("10dlu, 2dlu, fill:pref:grow, 12dlu", "pref, fill:pref:grow, pref"); //$NON-NLS-1$ //$NON-NLS-2$
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);
    builder.setDefaultDialogBorder();
    builder.nextColumn(2);
    builder.append(Messages.getString("UserRepositoryDirectoryChooser.chooseDirectory")); //$NON-NLS-1$
    builder.nextLine();
    DefaultMutableTreeNode root = populateTree(repo.getDirectoryTree());
    final JTree tree = new JTree(root);
    builder.append(""); //$NON-NLS-1$
    JScrollPane scrollPane = new JScrollPane(tree);
    scrollPane.setPreferredSize(new Dimension(200, 350));
    builder.append(scrollPane);
    ButtonBarBuilder buttonBar = new ButtonBarBuilder();
    buttonBar.addGlue();
    JButton okButton = new JButton(Messages.getString("UserRepositoryDirectoryChooser.okOption")); //$NON-NLS-1$
    okButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            if (tree.getSelectionPath() == null) {
                return;
            }
            directory = (RepositoryDirectory) ((DefaultMutableTreeNode) tree.getSelectionPath()
                    .getLastPathComponent()).getUserObject();
            chooserDialog.dispose();
        }
    });
    buttonBar.addGridded(okButton);
    buttonBar.addRelatedGap();
    JButton cancelButton = new JButton(Messages.getString("UserRepositoryDirectoryChooser.cancelOption")); //$NON-NLS-1$
    cancelButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            directory = null;
            chooserDialog.dispose();
        }
    });
    buttonBar.addGridded(cancelButton);
    builder.nextLine();
    builder.append(""); //$NON-NLS-1$
    builder.add(buttonBar.getPanel());

    chooserDialog.add(builder.getPanel());

    chooserDialog.setModal(true);
    Runnable promptUser = new Runnable() {
        public void run() {
            chooserDialog.pack();
            chooserDialog.setLocationRelativeTo(parent);
            chooserDialog.setVisible(true);
        }
    };

    if (SwingUtilities.isEventDispatchThread()) {
        promptUser.run();
    } else {
        try {
            SwingUtilities.invokeAndWait(promptUser);
        } catch (InterruptedException e) {
            ASUtils.showExceptionDialogNoReport(parent,
                    "While queing the dialog's pack, setVisible and setLocation, we were interrupted", e); //$NON-NLS-1$
        } catch (InvocationTargetException e) {
            ASUtils.showExceptionDialogNoReport(parent,
                    "While queing the dialog's pack, setVisible and setLocation, an InvocationTargetException was thrown", //$NON-NLS-1$
                    e);
        }
    }
    return directory;
}

From source file:ca.sqlpower.matchmaker.swingui.data.CommonWordsFinderPanel.java

License:Open Source License

public CommonWordsFinderPanel(final MatchMakerSwingSession session, SPDataSource defaultConnection) {
    this.session = session;
    DataSourceCollection dataSources = session.getContext().getPlDotIni();
    final JComboBox connectionChooser = new JComboBox(new ConnectionComboBoxModel(dataSources));
    connectionChooser.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            try {
                JDBCDataSource ds = (JDBCDataSource) connectionChooser.getSelectedItem();

                // Gets the session's shared SQLDatabase for this data source
                SQLDatabase db = session.getDatabase(ds);

                // XXX don't know if this is going to reparent the shared database in a bad way!
                SQLObjectRoot root = new SQLObjectRoot();

                root.addChild(db);/*from w  w w.ja  v a2  s. c  o  m*/
                DBTreeModel model = new DBTreeModel(root);
                columnPicker.setModel(model);
            } catch (SQLObjectException ex) {
                throw new RuntimeException(ex);
            }
        }
    });
    columnPicker = new JTree();

    DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("pref:grow"));
    builder.append("Choose a column to analyze for frequently-occurring words:");
    builder.append(connectionChooser);
    builder.append(new JScrollPane(columnPicker));

    JDefaultButton okButton = new JDefaultButton("Start");
    JButton cancelButton = new JButton("Cancel");
    builder.append(ButtonBarFactory.buildOKCancelBar(okButton, cancelButton));
    panel = builder.getPanel();
}

From source file:ca.sqlpower.matchmaker.swingui.engine.AddressValidationSettingsPanel.java

License:Open Source License

private void buildUI() {
    FormLayout validationSettingsLayout = new FormLayout("pref");
    DefaultFormBuilder dfb = new DefaultFormBuilder(validationSettingsLayout);
    dfb.append("Address Filter Setting");

    dfb.nextLine();/* ww w  .  j a  va 2 s .  c o m*/
    valid = new JCheckBox("Include all valid addresses");
    if (settings.getPoolFilterSetting() == PoolFilterSetting.EVERYTHING
            || settings.getPoolFilterSetting() == PoolFilterSetting.VALID_ONLY
            || settings.getPoolFilterSetting() == PoolFilterSetting.VALID_OR_DIFFERENT_FORMAT
            || settings.getPoolFilterSetting() == PoolFilterSetting.VALID_OR_INVALID) {
        valid.setSelected(true);
    }
    dfb.append(valid);

    dfb.nextLine();
    differentFormat = new JCheckBox("Include all valid addresses with different formatting");
    if (settings.getPoolFilterSetting() == PoolFilterSetting.EVERYTHING
            || settings.getPoolFilterSetting() == PoolFilterSetting.INVALID_OR_DIFFERENT_FORMAT
            || settings.getPoolFilterSetting() == PoolFilterSetting.VALID_OR_DIFFERENT_FORMAT
            || settings.getPoolFilterSetting() == PoolFilterSetting.DIFFERENT_FORMAT_ONLY) {
        differentFormat.setSelected(true);
    }
    dfb.append(differentFormat);

    dfb.nextLine();
    invalid = new JCheckBox("Include all invalid addresses");
    if (settings.getPoolFilterSetting() == PoolFilterSetting.EVERYTHING
            || settings.getPoolFilterSetting() == PoolFilterSetting.INVALID_OR_DIFFERENT_FORMAT
            || settings.getPoolFilterSetting() == PoolFilterSetting.VALID_OR_INVALID
            || settings.getPoolFilterSetting() == PoolFilterSetting.INVALID_ONLY) {
        invalid.setSelected(true);
    }
    dfb.append(invalid);

    dfb.nextLine();
    dfb.appendUnrelatedComponentsGapRow();
    dfb.nextLine();
    dfb.append("Auto-correction Setting");
    ButtonGroup autoValidateButtonGroup = new ButtonGroup();

    dfb.nextLine();
    avcNothingRB = new JRadioButton(AutoValidateSetting.NOTHING.getLongDescription());
    if (settings.getAutoValidateSetting() == AutoValidateSetting.NOTHING) {
        avcNothingRB.setSelected(true);
    }
    dfb.append(avcNothingRB);
    autoValidateButtonGroup.add(avcNothingRB);

    dfb.nextLine();
    avcSerpCorrectableRB = new JRadioButton(AutoValidateSetting.SERP_CORRECTABLE.getLongDescription());
    if (settings.getAutoValidateSetting() == AutoValidateSetting.SERP_CORRECTABLE) {
        avcSerpCorrectableRB.setSelected(true);
    }
    dfb.append(avcSerpCorrectableRB);
    autoValidateButtonGroup.add(avcSerpCorrectableRB);

    dfb.nextLine();
    avcEverythingWithOneSuggestionRB = new JRadioButton(
            AutoValidateSetting.EVERYTHING_WITH_ONE_SUGGESTION.getLongDescription());
    if (settings.getAutoValidateSetting() == AutoValidateSetting.EVERYTHING_WITH_ONE_SUGGESTION) {
        avcEverythingWithOneSuggestionRB.setSelected(true);
    }
    dfb.append(avcEverythingWithOneSuggestionRB);
    autoValidateButtonGroup.add(avcEverythingWithOneSuggestionRB);

    dfb.nextLine();
    avcEverythingWithSuggestionRB = new JRadioButton(
            AutoValidateSetting.EVERYTHING_WITH_SUGGESTION.getLongDescription());
    if (settings.getAutoValidateSetting() == AutoValidateSetting.EVERYTHING_WITH_SUGGESTION) {
        avcEverythingWithSuggestionRB.setSelected(true);
    }
    dfb.append(avcEverythingWithSuggestionRB);
    autoValidateButtonGroup.add(avcEverythingWithSuggestionRB);

    panel = dfb.getPanel();
}

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

License:Open Source License

/**
 * Creates a AbstractMungeComponent for the given step that will be in the munge pen.
 * Sets the background and border colours to given colours.
 * /*ww w.j ava2 s .c  om*/
 * @param step The step connected to the UI
 * @param border The colour for the border around the rectangle
 * @param bg The background colour to the rectangle
 */
public AbstractMungeComponent(MungeStep step, FormValidationHandler handler, MatchMakerSession s) {
    if (step == null)
        throw new NullPointerException("Null step");

    try {
        step.refresh(logger);
    } catch (Exception e1) {
        throw new RuntimeException("Failed to refresh step " + step.getName(), e1);
    }

    this.session = (MatchMakerSwingSession) s;
    this.handler = handler;

    this.step = step;
    setVisible(true);
    setBackground(normalBackground);

    autoScrollTimer = new Timer(AUTO_SCROLL_TIME, new AbstractAction() {

        public void actionPerformed(ActionEvent e) {
            logger.debug("TIMER GO!!!");
            getPen().autoscroll(autoScrollPoint, AbstractMungeComponent.this);
        }
    });

    autoScrollTimer.stop();
    autoScrollTimer.setRepeats(true);

    dropNibIndex = -1;

    ToolTipManager toolTipManager = ToolTipManager.sharedInstance();
    toolTipManager.setInitialDelay(0);

    bustGhost();

    mungeComKeyListener = new MungeComponentKeyListener();
    addKeyListener(mungeComKeyListener);

    step.addSPListener(new StepEventHandler());
    setName(step.getName());

    resizeBorders();

    setOpaque(false);
    setFocusable(true);

    Dimension ps = getPreferredSize();
    setBounds(0, 0, ps.width, ps.height);

    DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("pref", "pref, pref, fill:pref, pref"),
            this);
    setBackground(Color.GREEN);

    inputNames = new JPanel();
    inputNames.setOpaque(false);
    inputNames.setLayout(new FlowLayout());

    inputLabels = new CoolJLabel[step.getMSOInputs().size()];

    for (int x = 0; x < inputLabels.length; x++) {
        InputDescriptor id = step.getInputDescriptor(x);
        inputLabels[x] = new CoolJLabel(id.getName(), id.getType());
        inputLabels[x].collapse();
        inputNames.add(inputLabels[x]);
        inputLabels[x].setOpaque(false);
    }
    setInputShowNames(false);

    builder.append(inputNames);
    builder.nextLine();
    if (isExpanded() && inputNames.isVisible()) {
        inputNames.setVisible(true);
    } else {
        inputNames.setVisible(false);
    }
    revalidate();

    outputNames = new JPanel();
    outputNames.setOpaque(false);
    outputNames.setLayout(new FlowLayout());

    outputLabels = new CoolJLabel[step.getChildren(MungeStepOutput.class).size()];

    for (int x = 0; x < outputLabels.length; x++) {
        MungeStepOutput out = step.getChildren(MungeStepOutput.class).get(x);
        outputLabels[x] = new CoolJLabel(out.getName(), out.getType());
        outputLabels[x].collapse();
        outputNames.add(outputLabels[x]);
        outputLabels[x].setOpaque(false);
    }
    setOutputShowNames(false);

    JPanel tmp = new JPanel(new FlowLayout());
    tmp.setBackground(Color.BLUE);
    tmp.add(new JLabel(step.getName()));

    hideShow = new JButton(new HideShowAction());
    hideShow.setIcon(EXPOSE_OFF);

    setupOpaqueComponents();
    content = buildUI();
    //returning null will prevent the +/- button form showing up
    if (content != null) {
        deOpaquify(content);
        JToolBar tb = new JToolBar();
        hideShow.setBorder(null);
        hideShow.addMouseListener(new MouseAdapter() {
            public void mouseEntered(MouseEvent e) {
                hideShow.setIcon(EXPOSE_ON);
                hideShow.setBorder(null);
            }

            public void mouseExited(MouseEvent e) {
                hideShow.setIcon(EXPOSE_OFF);
                hideShow.setBorder(null);
            }
        });

        tb.setBorder(null);
        tb.add(hideShow);
        tb.setFloatable(false);
        tmp.add(tb);
    }

    builder.append(tmp);
    builder.nextLine();
    if (content != null) {
        builder.append(content);
    }
    builder.nextLine();
    builder.append(outputNames);

    addMouseListener(new MungeComponentMouseListener());
    addMouseMotionListener(new MungeComponentMouseMoveListener());

    addComponentListener(new ComponentListener() {

        public void componentHidden(ComponentEvent e) {
        }

        public void componentMoved(ComponentEvent e) {
            getParent().repaint();
        }

        public void componentResized(ComponentEvent e) {
            getParent().repaint();
        }

        public void componentShown(ComponentEvent e) {
        }
    });

    addFocusListener(new FocusListener() {
        public void focusGained(FocusEvent e) {
            //if it is being deleted
            if (getParent() != null) {
                getParent().repaint();
                MatchMakerTreeModel treeModel = (MatchMakerTreeModel) session.getTree().getModel();

                TreePath menuPath = treeModel.getPathForNode(getStep());
                session.getTree().setSelectionPath(menuPath);
            }
        }

        public void focusLost(FocusEvent e) {
            if (getParent() != null) {
                getParent().repaint();
            }
            if (autoScrollTimer.isRunning()) {
                autoScrollTimer.stop();
            }
        }
    });

    setOpaque(false);
    tmp.setOpaque(false);

    // Note, this does not take care of the content panel; only the basic
    // stuff added here in the constructor (most importantly, the +/- button)
    deOpaquify(this);
    deOpaquify(inputNames);
    setDefaults();
}

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

License:Open Source License

@Override
protected JPanel buildUI() {
    if (addressDataRequired != null) {
        addressDataRequired.removeMouseListener(HyperlinkTextSelectedListener);
    }//from w  w w .jav a 2  s  . c om

    if (HyperlinkTextSelectedListener == null) {
        HyperlinkTextSelectedListener = new MouseAdapter() {

            public void mouseEntered(MouseEvent e) {
                setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
            }

            public void mousePressed(MouseEvent e) {
                try {
                    BrowserUtil.launch(addressDataURL);
                } catch (IOException e1) {
                    SPSUtils.showExceptionDialogNoReport(AddressCorrectionMungeComponent.this, "Invalid URL",
                            e1);
                }
            }

            public void mouseExited(MouseEvent e) {
                setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
            }
        };
    }

    DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("center:pref:grow", "fill:pref, pref"));

    addressDataURL = "http://www.sqlpower.ca/page/dqguru_address_data";
    addressDataRequired = new JLabel(
            "<html> <p align =\"center\">You cannot continue without having a valid address database to compare against!<br> Please set the path to your address database in the User Preferences... <br> To purchase one, click on the following link:<br> <a href=\""
                    + addressDataURL + "\">http://www.sqlpower.ca/page/dqguru_address_data</a><html>");
    addressDataRequired.addMouseListener(HyperlinkTextSelectedListener);

    builder.add(addressDataRequired);
    builder.nextLine();
    addressDataRequired.setVisible(false);

    if (!((AddressCorrectionMungeStep) getStep()).doesDatabaseExist()) {
        addressDataRequired.setVisible(true);
    }

    showAllButton = new JButton(new HideShowAllLabelsAction("Show All", true, true, true));
    hideAllButton = new JButton(new HideShowAllLabelsAction("Hide All", true, true, false));
    JPanel content = new JPanel(new FlowLayout());
    content.add(showAllButton);
    content.add(hideAllButton);

    builder.append(content);

    setOutputShowNames(true);
    setInputShowNames(true);

    return builder.getPanel();
}

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

License:Open Source License

@Override
protected JPanel buildUI() {
    GoogleAddressLookup temp = (GoogleAddressLookup) getStep();

    url = new JTextField(temp.getGoogleGeocoderURL());
    url.getDocument().addDocumentListener(new DocumentListener() {
        public void insertUpdate(DocumentEvent e) {
            doStuff();/*from w  ww  . j  a  v  a 2s.  co  m*/
        }

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

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

        private void doStuff() {
            GoogleAddressLookup step = (GoogleAddressLookup) getStep();
            step.setGoogleGeocoderURL(url.getText());
        }
    });

    key = new JTextField(temp.getGoogleMapsApiKey());
    key.getDocument().addDocumentListener(new DocumentListener() {
        public void insertUpdate(DocumentEvent e) {
            doStuff();
        }

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

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

        private void doStuff() {
            GoogleAddressLookup step = (GoogleAddressLookup) getStep();
            step.setGoogleMapsApiKey(key.getText());
        }
    });

    rateLimit = new JSpinner(new SpinnerNumberModel(0.0, 0.0, 10.0, 0.1));
    rateLimit.setValue(temp.getRateLimit());

    JPanel mainContent = new JPanel();
    DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("fill:pref:grow", "fill:pref, pref"),
            mainContent);

    FormLayout layout = new FormLayout("4dlu,pref,4dlu,fill:pref:grow,4dlu", // columns
            "4dlu,pref,4dlu,pref,4dlu,pref,4dlu,pref,4dlu"); // rows
    CellConstraints cc = new CellConstraints();
    JPanel content = new JPanel(layout);
    content.add(new JLabel("URL:"), cc.xy(2, 2));
    content.add(url, cc.xy(4, 2));
    content.add(new JLabel("Google Maps API Key:"), cc.xy(2, 4));
    content.add(key, cc.xy(4, 4));
    content.add(new JLabel("Rate Limit (s):"), cc.xy(2, 6));
    content.add(rateLimit, cc.xy(4, 6));

    JPanel subPanel = new JPanel(new FlowLayout());
    showAllButton = new JButton(new HideShowAllLabelsAction("Show All", false, true, true));
    hideAllButton = new JButton(new HideShowAllLabelsAction("Hide All", false, true, false));
    subPanel.add(showAllButton);
    subPanel.add(hideAllButton);

    builder.append(content);
    builder.nextLine();
    builder.append(subPanel);

    return mainContent;
}