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, RowSpec[] rowSpecs) 

Source Link

Document

Constructs a FormLayout using the given column and row specifications.

Usage

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

License:Open Source License

public RevisionListPanel(ArchitectSwingSession swingSession, ArchitectFrame architectFrame,
        Action closeAction) {//from   w  w  w.ja  v  a  2 s  . com

    this.dialogOwner = architectFrame;
    this.swingSession = swingSession;
    this.session = swingSession.getEnterpriseSession();

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

    int currentRevision = session.getUpdater().getRevision();
    long from = currentRevision - DEFAULT_REVISION_RANGE;
    if (from <= 0)
        from = 1;
    fromVersion = new JLongField(from);
    toVersion = new JLongField(currentRevision);

    revisionsTable = new RevisionsTable(this.session, from, currentRevision);
    revisionsTable.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(MouseEvent e) {
            refreshPanel();
        }
    });

    CellConstraints cc = new CellConstraints();
    builder.add(new JLabel("Revisions:"), cc.xy(1, 1));
    builder.add(revisionsTable.getScrollPane(), cc.xy(1, 3));

    DefaultFormBuilder textFieldBuilder = new DefaultFormBuilder(new FormLayout("pref, pref"));
    textFieldBuilder.append(new JLabel("from version "), fromVersion.getField());
    textFieldBuilder.append(new JLabel("to version "), toVersion.getField());

    DefaultFormBuilder filterBuilder = new DefaultFormBuilder(new FormLayout("pref"));
    filterBuilder.append(new JLabel("Display revisions "));
    filterBuilder.append(textFieldBuilder.getPanel());

    autoRefreshBox = new JCheckBox("Auto-refresh", false);
    autoRefresh = new Runnable() {
        public void run() {
            while (autoRefreshBox.isSelected()) {
                SwingUtilities.invokeLater(new Runnable() {
                    public void run() {
                        refreshAction.actionPerformed(null);
                    }
                });
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException ex) {
                    autoRefreshBox.setSelected(false);
                }
            }
        }
    };
    autoRefreshBox.addItemListener(new ItemListener() {
        public void itemStateChanged(ItemEvent e) {
            if (autoRefreshBox.isSelected()) {
                new Thread(autoRefresh).start();
            }
        }
    });
    autoRefreshBox.setSelected(true);

    DefaultFormBuilder buttonBarBuilder = new DefaultFormBuilder(new FormLayout("pref"));
    buttonBarBuilder.append(filterBuilder.getPanel());
    buttonBarBuilder.append(new JLabel("\n"));
    buttonBarBuilder.append(new JButton(refreshAction));
    buttonBarBuilder.append(new JButton(revertAction));
    buttonBarBuilder.append(new JButton(openAction));
    buttonBarBuilder.append(new JButton(compareAction));
    buttonBarBuilder.append(new JButton(closeAction));
    buttonBarBuilder.append(autoRefreshBox);

    builder.add(buttonBarBuilder.getPanel(), cc.xy(3, 3));
    builder.setDefaultDialogBorder();

    panel = builder.getPanel();
    panel.setPreferredSize(new Dimension(700, 500));

    refreshPanel();

}

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

License:Open Source License

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

    ArchitectClientSideSession.getCookieStore().clear();

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

    servers = null;/*  ww  w .j  a  v  a2 s.  c o  m*/

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

    JButton securityButton = new JButton(openSecurityManagerPanelAction);

    refreshInfoList();
    CellConstraints cc = new CellConstraints();
    builder.add(new JLabel(serverInfo.getName() + "'s projects:"), cc.xyw(1, 1, 2));
    builder.nextLine();
    builder.add(projectsPane, cc.xywh(1, 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(deleteAction));
    buttonBarBuilder.append(new JButton(closeAction));
    builder.add(buttonBarBuilder.getPanel(), cc.xy(3, 2));
    builder.setDefaultDialogBorder();
    panel = builder.getPanel();
}

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   ww  w .  j a  va2  s .  c om
        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.enterprise.UserEditorPanel.java

License:Open Source License

public UserEditorPanel(User baseUser, String username, Action closeAction, final ArchitectSession session) {
    this.user = baseUser;
    this.session = session;
    this.securityWorkspace = (ArchitectSwingProject) user.getParent();
    this.username = username;
    this.closeAction = closeAction;

    final Dimension prefScrollPaneDimension = new Dimension(250, 300);

    usernameLabel = new JLabel("User Name");
    usernameField = new JTextField();
    usernameField.setText(user.getUsername());
    usernameField.getDocument().addDocumentListener(textFieldListener);

    fullnameLabel = new JLabel("Full Name");
    fullnameField = new JTextField();
    fullnameField.setText(user.getFullName());
    fullnameField.getDocument().addDocumentListener(textFieldListener);

    emailLabel = new JLabel("Email");
    emailField = new JTextField();
    emailField.setText(user.getEmail());
    emailField.getDocument().addDocumentListener(textFieldListener);

    ListCellRenderer groupListCellRenderer = new DefaultListCellRenderer() {
        @Override//  ww  w  . ja v a 2s . co m
        public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected,
                boolean cellHasFocus) {
            super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
            setIcon(GROUP_ICON);
            return this;
        }
    };

    availableGroupsLabel = new JLabel("Available Groups");
    availableGroupsList = new JList(new DefaultListModel());
    availableGroupsList.setCellRenderer(groupListCellRenderer);
    availableGroupsScrollPane = new JScrollPane(availableGroupsList);
    availableGroupsScrollPane.setPreferredSize(prefScrollPaneDimension);

    currentGroupsLabel = new JLabel("Current Groups");
    currentGroupsList = new JList(new DefaultListModel());
    currentGroupsList.setCellRenderer(groupListCellRenderer);
    currentGroupsScrollPane = new JScrollPane(currentGroupsList);
    currentGroupsScrollPane.setPreferredSize(prefScrollPaneDimension);

    Grant globalGrant = null;
    for (Grant grant : user.getChildren(Grant.class)) {
        if (grant.isSystemLevel() && grant.getType().equals(ArchitectSwingProject.class.getName())) {
            if (globalGrant != null) {
                throw new IllegalStateException("Multiple grants for Architect Project found");
            }

            globalGrant = grant;
        }
    }

    if (globalGrant != null) {
        privilegesEditorPanel = new PrivilegesEditorPanel(globalGrant, user, null,
                ArchitectSwingProject.class.getName(), username, securityWorkspace);
    } else {
        privilegesEditorPanel = new PrivilegesEditorPanel(null, user, null,
                ArchitectSwingProject.class.getName(), username, securityWorkspace);
    }

    JButton addButton = new JButton(addAction);
    addButton.setIcon(RIGHT_ARROW);
    JButton removeButton = new JButton(removeAction);
    removeButton.setIcon(LEFT_ARROW);

    CellConstraints cc = new CellConstraints();
    DefaultFormBuilder upperPanelBuilder = new DefaultFormBuilder(
            new FormLayout("pref, 5dlu, pref:grow", "pref, pref, pref, pref, pref, 5dlu"));
    upperPanelBuilder.add(usernameLabel, cc.xy(1, 1));
    upperPanelBuilder.add(usernameField, cc.xyw(3, 1, 1));
    upperPanelBuilder.add(fullnameLabel, cc.xy(1, 3));
    upperPanelBuilder.add(fullnameField, cc.xyw(3, 3, 1));
    upperPanelBuilder.add(emailLabel, cc.xy(1, 4));
    upperPanelBuilder.add(emailField, cc.xy(3, 4));

    passwordButton = new JButton(changePasswordAction);

    ButtonBarBuilder2 passwordBuilder = ButtonBarBuilder2.createLeftToRightBuilder();
    passwordBuilder.addGlue();
    passwordBuilder.addButton(passwordButton);

    DefaultFormBuilder buttonPanelBuilder = new DefaultFormBuilder(
            new FormLayout("pref", "pref:grow, pref, 5dlu, pref, pref:grow"));
    buttonPanelBuilder.add(addButton, cc.xy(1, 2));
    buttonPanelBuilder.add(removeButton, cc.xy(1, 5));

    DefaultFormBuilder centrePanelBuilder = new DefaultFormBuilder(
            new FormLayout("pref, 5dlu, pref, 5dlu, pref", "pref, pref:grow"));
    centrePanelBuilder.add(availableGroupsLabel, cc.xy(1, 1));
    centrePanelBuilder.add(currentGroupsLabel, cc.xy(5, 1));
    centrePanelBuilder.add(availableGroupsScrollPane, cc.xy(1, 2));
    centrePanelBuilder.add(buttonPanelBuilder.getPanel(), cc.xy(3, 2));
    centrePanelBuilder.add(currentGroupsScrollPane, cc.xy(5, 2));

    DefaultFormBuilder builder = new DefaultFormBuilder(
            new FormLayout("pref:grow", "pref, pref, 3dlu, pref:grow, 5dlu, pref"));
    builder.add(upperPanelBuilder.getPanel(), cc.xy(1, 1));
    builder.add(passwordBuilder.getPanel(), cc.xy(1, 2));
    builder.add(centrePanelBuilder.getPanel(), cc.xy(1, 4));

    DefaultFormBuilder bottomBuilder = new DefaultFormBuilder(
            new FormLayout("pref:grow, 5dlu, pref:grow", "pref, 3dlu, pref"));
    bottomBuilder.add(new JLabel("System Privileges"), cc.xy(1, 1));
    bottomBuilder.add(privilegesEditorPanel.getPanel(), cc.xy(1, 3));

    ButtonBarBuilder2 bbb = ButtonBarBuilder2.createLeftToRightBuilder();
    bbb.addGlue();
    bbb.addButton(new JButton(okAction));
    bbb.addRelatedGap();
    bbb.addButton(new JButton(cancelAction));

    bottomBuilder.add(bbb.getPanel(), cc.xy(3, 3));
    builder.add(bottomBuilder.getPanel(), cc.xy(1, 6));
    builder.setDefaultDialogBorder();

    panel = builder.getPanel();

    fillGroupLists();
    disableIfNecessary();
}

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

License:Open Source License

public IndexEditPanel(SQLIndex index, SQLTable parent, ArchitectSwingSession session)
        throws SQLObjectException {
    panel = new JPanel(new FormLayout("pref,4dlu,pref,4dlu,pref:grow,4dlu,pref", //$NON-NLS-1$
            "pref,4dlu,pref,4dlu,pref,4dlu,pref,4dlu,pref,4dlu,pref,4dlu,pref:grow,4dlu,pref,4dlu")); //$NON-NLS-1$
    this.session = session;
    SQLPowerUtils.listenToHierarchy(index, this);
    createGUI(index, parent, session);//from  w  w  w .  j  a va2  s  .  co m
}

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

License:Open Source License

public KettleDataSourceTypeOptionPanel() {
    PanelBuilder pb = new PanelBuilder(new FormLayout("4dlu,pref,4dlu,pref:grow,4dlu",
            "4dlu,pref,4dlu,pref,4dlu,pref,4dlu,pref,4dlu,pref,4dlu"));

    CellConstraints cc = new CellConstraints();
    CellConstraints cl = new CellConstraints();
    int row = 2;/*from   w w w  .j av a2s .c om*/
    pb.addLabel("Kettle Connection Type", cl.xy(2, row), kettleConnectionType, cc.xy(4, row));
    List<String> dbConnectionNames = KettleUtils.retrieveKettleConnectionTypes();
    for (String dbConnectionName : dbConnectionNames) {
        kettleConnectionType.addItem(dbConnectionName);
    }
    kettleConnectionType.setSelectedIndex(-1);

    panel = pb.getPanel();
}

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

License:Open Source License

public CalculatedMemberEditPanel(CalculatedMember model) {
    this.calculatedMember = model;
    FormLayout layout = new FormLayout("left:max(40dlu;pref), 3dlu, 150dlu:grow", "");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);
    builder.setDefaultDialogBorder();//from w  w w. ja  va 2s .c o m
    builder.append("Name", nameField = new JTextField(model.getName()));
    builder.append("Caption", captionField = new JTextField(model.getCaption()));
    builder.append("Dimension", dimensionField = new JTextField(model.getDimension()));
    builder.append("Visible",
            visibleCheckBox = new JCheckBox("", model.getVisible() == null ? true : model.getVisible()));
    String formula = null;
    if (model.getFormula() != null) {
        formula = model.getFormula();
    } else if (model.getFormulaElement() != null) {
        formula = model.getFormulaElement().getText();
    }
    builder.append("Formula", formulaTextArea = new JTextArea(formula, 4, 50));
    formulaTextArea.setLineWrap(true);
    builder.append("Format", formatField = new JTextField(model.getFormatString()));
    panel = builder.getPanel();
}

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

License:Open Source License

/**
 * Creates a new property editor for the given OLAP Cube.
 * /*from  w w  w  . jav a 2  s  .com*/
 * TODO remove the dbMapping if it is no longer needed as the session will
 * be used from the playpen or remove the session from the view and join
 * entry panel constructors and pass a dbMapping as required instead.
 * 
 * @param cube
 *            The data model of the cube to edit
 */
public CubeEditPanel(Cube cube, final PlayPen playPen, final SQLDatabaseMapping dbMapping)
        throws SQLObjectException {
    this.cube = cube;

    List<SQLTable> tables = OLAPUtil.getAvailableTables(cube);

    FormLayout layout = new FormLayout("left:max(40dlu;pref), 3dlu, 80dlu:grow", "");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);
    builder.setDefaultDialogBorder();
    builder.append(status, 3);
    builder.append("Name", nameField = new JTextField(cube.getName()));
    builder.append("Caption", captionField = new JTextField(cube.getCaption()));
    // default measure is optional so we need to add in a null option
    List<Measure> measures = new ArrayList<Measure>(cube.getMeasures());
    measures.add(0, null);
    builder.append("Default Measure", defMeasure = new JComboBox(measures.toArray()));
    defMeasure.setRenderer(new OLAPObjectListCellRenderer());
    for (Measure ms : cube.getMeasures()) {
        if (ms.getName().equals(cube.getDefaultMeasure())) {
            defMeasure.setSelectedItem(ms);
            break;
        }
    }

    final JButton viewEditButton = new JButton(new AbstractAction("Edit...") {
        public void actionPerformed(ActionEvent e) {
            JDialog dialog = DataEntryPanelBuilder.createDataEntryPanelDialog(
                    new ViewEntryPanel(playPen.getSession(), getDatabase(), CubeEditPanel.this), playPen,
                    "View Builder", DataEntryPanelBuilder.OK_BUTTON_LABEL);
            dialog.pack();
            dialog.setVisible(true);
        }
    });

    builder.appendSeparator("Fact Table");
    tableChooser = new JComboBox(new Vector<SQLTable>(tables));

    final JScrollPane selectStatementsPane = new JScrollPane(selectStatements = new JTextArea("", 4, 30));

    Action radioButtonsAction = new AbstractAction() {
        public void actionPerformed(ActionEvent arg0) {
            tableChooser.setEnabled(tableRadioButton.isSelected());
            selectStatementsPane.setEnabled(viewRadioButton.isSelected());
            viewAlias.setEnabled(viewRadioButton.isSelected());
            viewEditButton.setEnabled(viewRadioButton.isSelected());
        }
    };

    tableRadioButton = new JRadioButton();
    tableRadioButton.setAction(radioButtonsAction);
    tableRadioButton.setText("Use Existing Table");
    viewRadioButton = new JRadioButton();
    viewRadioButton.setAction(radioButtonsAction);
    viewRadioButton.setText("Use View");

    ButtonGroup buttonGroup = new ButtonGroup();
    buttonGroup.add(tableRadioButton);
    buttonGroup.add(viewRadioButton);

    DefaultFormBuilder factBuilder = new DefaultFormBuilder(
            new FormLayout("9dlu, 3dlu, pref, 3dlu, pref:grow"));
    builder.append(factBuilder.getPanel(), 3);

    factBuilder.append(tableRadioButton, 5);
    factBuilder.append("", tableChooser, 3);
    factBuilder.append(viewRadioButton, 5);
    factBuilder.append("", new JLabel("Alias"), viewAlias = new JTextField());
    factBuilder.append("", new JLabel("SELECT Statements"), 3);
    factBuilder.append("", selectStatementsPane, 3);

    factBuilder.append("", viewEditButton);
    factBuilder.nextLine();
    selectStatements.setLineWrap(true);
    selectStatements.setEditable(false);

    if (cube.getFact() instanceof View) {
        viewRadioButton.doClick();
        tableRadioButton.setEnabled(false);
        tableChooser.setEnabled(false);

        //XXX There could be multiple SQL objects in a view but we can only edit one at a time right now.
        final List<SQL> selects = ((View) cube.getFact()).getSelects();
        for (SQL sql : selects) {
            if (sql.getDialect() == null || sql.getDialect().equals("generic")) {
                selectStatements.append(sql.getText());
                break;
            }
        }
        if (selectStatements.getText().trim().length() == 0 && !selects.isEmpty()) {
            selectStatements.append(selects.get(0).getText());
        }
    } else if (tables.isEmpty()) {
        tableChooser.addItem("Database has no tables");
        viewRadioButton.doClick();
        tableRadioButton.setEnabled(false);
        tableChooser.setEnabled(false);
    } else {
        SQLTable t = OLAPUtil.tableForCube(cube);
        //if SQLTable t is not found, then either cube.fact is not defined, or cube.fact is a view
        if (tables.contains(t)) {
            tableChooser.setSelectedItem(t);
            tableRadioButton.doClick();
        } else if (cube.getFact() != null) {
            viewRadioButton.doClick();
        } else {
            tableRadioButton.doClick();
        }
    }

    panel = builder.getPanel();

    handler = new FormValidationHandler(status);
    Validator validator = new OLAPObjectNameValidator((OLAPObject) cube.getParent(), cube, false);
    handler.addValidateObject(nameField, validator);
}

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

License:Open Source License

/**
 * Creates a new property editor for the given OLAP dimension. 
 * //w  ww . j av a 2s.co  m
 * @param dimension The dimension to edit
 * @throws SQLObjectException
 *             if digging up the source table results in a database error
 */
public DimensionEditPanel(Dimension dimension) throws SQLObjectException {
    this.dimension = dimension;

    FormLayout layout = new FormLayout("left:max(40dlu;pref), 3dlu, 80dlu:grow", "");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);
    builder.setDefaultDialogBorder();
    builder.append(status, 3);
    builder.append("Name", nameField = new JTextField(dimension.getName()));
    builder.append("Caption", captionField = new JTextField(dimension.getCaption()));
    builder.append("Type", typeBox = new JComboBox(DimensionType.values()));

    if (dimension.getType() != null) {
        typeBox.setSelectedItem(DimensionType.valueOf(dimension.getType()));
    } else {
        typeBox.setSelectedItem(DimensionType.StandardDimension);
    }

    handler = new FormValidationHandler(status, true);
    Validator validator = new OLAPObjectNameValidator((OLAPObject) dimension.getParent(), dimension, false);
    handler.addValidateObject(nameField, validator);

    // private dimensions only.
    if (dimension.getParent() instanceof Cube) {
        builder.append("Foreign Key", foreignKeyChooser = new JComboBox());
        handler.addValidateObject(foreignKeyChooser, new NotNullValidator("Foreign key"));

        Cube cube = (Cube) dimension.getParent();
        SQLTable factTable = OLAPUtil.tableForCube(cube);
        if (factTable == null) {
            foreignKeyChooser.addItem("Parent Cube has no fact table");
            foreignKeyChooser.setEnabled(false);
        } else if (factTable.getColumns().isEmpty()) {
            foreignKeyChooser.addItem("Parent Cube Fact table has no columns");
            foreignKeyChooser.setEnabled(false);
        } else {
            foreignKeyChooser.setModel(new SQLObjectComboBoxModel(factTable, SQLColumn.class));
            for (SQLColumn col : factTable.getColumns()) {
                if (col.getName().equals(dimension.getForeignKey())) {
                    foreignKeyChooser.setSelectedItem(col);
                }
            }
        }
    }

    panel = builder.getPanel();
}

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

License:Open Source License

/**
 * Creates a new property editor for the given dimension usage.
 * /*  www . j  a v a2  s .  co m*/
 * @param dimensionUsage
 *            usage The data model of the dimension usage to edit
 * @throws SQLObjectException
 *             if digging up the source table results in a database error
 */
public DimensionUsageEditPanel(DimensionUsage dimensionUsage) throws SQLObjectException {
    this.dimensionUsage = dimensionUsage;

    FormLayout layout = new FormLayout("left:max(40dlu;pref), 3dlu, 80dlu:grow", "");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);
    builder.setDefaultDialogBorder();
    builder.append(status, 3);
    builder.append("Caption", captionField = new JTextField(dimensionUsage.getCaption()));
    builder.append("Foreign Key", foreignKeyChooser = new JComboBox());

    Cube cube = (Cube) dimensionUsage.getParent();
    SQLTable factTable = OLAPUtil.tableForCube(cube);
    if (factTable == null) {
        foreignKeyChooser.addItem("Parent Cube has no fact table");
        foreignKeyChooser.setEnabled(false);
    } else if (factTable.getColumns().isEmpty()) {
        foreignKeyChooser.addItem("Parent Cube Fact table has no columns");
        foreignKeyChooser.setEnabled(false);
    } else {
        foreignKeyChooser.setModel(new SQLObjectComboBoxModel(factTable, SQLColumn.class));
        for (SQLColumn col : factTable.getColumns()) {
            if (col.getName().equals(dimensionUsage.getForeignKey())) {
                foreignKeyChooser.setSelectedItem(col);
            }
        }
    }

    handler = new FormValidationHandler(status, true);
    handler.addValidateObject(foreignKeyChooser, new NotNullValidator("Foreign key"));

    panel = builder.getPanel();
}