List of usage examples for com.jgoodies.forms.layout CellConstraints CellConstraints
public CellConstraints()
From source file:ca.phon.ui.text.SearchField.java
License:Open Source License
private void init() { final FormLayout layout = new FormLayout("pref, 3dlu, fill:pref:grow, 3dlu, pref", "pref"); setLayout(layout);/*w w w . ja va 2 s .c o m*/ final CellConstraints cc = new CellConstraints(); // load search icon final ImageIcon searchIcon = new ImageIcon(createSearchIcon()); final PhonUIAction ctxAction = new PhonUIAction(this, "onShowContextMenu"); ctxAction.putValue(PhonUIAction.SMALL_ICON, searchIcon); ctxAction.putValue(PhonUIAction.SHORT_DESCRIPTION, "Click for options"); ctxButton = new SearchFieldButton(ctxAction); ctxButton.setCursor(Cursor.getDefaultCursor()); ctxButton.setFocusable(false); add(ctxButton, cc.xy(1, 1)); add(queryField, cc.xy(3, 1)); final ImageIcon clearIcon = new ImageIcon(createClearIcon()); final PhonUIAction clearTextAct = new PhonUIAction(this, "onClearText"); clearTextAct.putValue(PhonUIAction.SMALL_ICON, clearIcon); clearTextAct.putValue(PhonUIAction.SHORT_DESCRIPTION, "Clear field"); endButton = new SearchFieldButton(clearTextAct); endButton.setCursor(Cursor.getDefaultCursor()); endButton.setDrawIcon(false); add(endButton, cc.xy(5, 1)); setBorder(queryField.getBorder()); final Insets insets = queryField.getBorder().getBorderInsets(queryField); queryField.setBorder(BorderFactory.createEmptyBorder(insets.top, insets.left, insets.bottom, insets.right)); }
From source file:ca.phon.ui.wizard.WizardFrame.java
License:Open Source License
private void init() { // step panel stepLayout = new CardLayout(); stepPanel = new JPanel(stepLayout); add(stepPanel, BorderLayout.CENTER); // button bar ImageIcon icnBack = IconManager.getInstance().getIcon("actions/agt_back", IconSize.SMALL); ImageIcon icnNext = IconManager.getInstance().getIcon("actions/agt_forward", IconSize.SMALL); ImageIcon icnFinish = IconManager.getInstance().getIcon("actions/button_ok", IconSize.SMALL); ImageIcon icnCancel = IconManager.getInstance().getIcon("actions/button_cancel", IconSize.SMALL); btnBack = new JButton("Back"); btnBack.setIcon(icnBack);// www. j av a 2 s . c om btnBack.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { prev(); } }); btnNext = new JButton("Next"); btnNext.setIcon(icnNext); btnNext.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { next(); } }); btnNext.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); btnFinish = new JButton("Finish"); btnFinish.setIcon(icnFinish); btnFinish.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { finish(); } }); super.getRootPane().setDefaultButton(btnFinish); btnCancel = new JButton("Close"); btnCancel.setIcon(icnCancel); btnCancel.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { cancel(); } }); FormLayout barLayout = new FormLayout("fill:pref:grow, pref, pref, 5dlu, pref, pref", "pref"); CellConstraints cc = new CellConstraints(); JPanel buttonPanel = new JPanel(barLayout); buttonPanel.add(btnBack, cc.xy(2, 1)); buttonPanel.add(btnNext, cc.xy(3, 1)); buttonPanel.add(btnFinish, cc.xy(5, 1)); buttonPanel.add(btnCancel, cc.xy(6, 1)); buttonPanel.setBorder(BorderFactory.createMatteBorder(1, 0, 0, 0, Color.DARK_GRAY)); add(buttonPanel, BorderLayout.SOUTH); }
From source file:ca.sqlpower.architect.swingui.action.ProgressAction.java
License:Open Source License
/** * Setup the dialog, monitors and worker. Classes that extend this class * should use doStuff() and cleanUp()/*from ww w . j av a2s . c o m*/ */ public void actionPerformed(ActionEvent e) { final JDialog progressDialog; final Map<String, Object> properties = new HashMap<String, Object>(); progressDialog = new JDialog(frame, Messages.getString("ProgressAction.name"), false); //$NON-NLS-1$ progressDialog.setLocationRelativeTo(frame); progressDialog.setTitle(getDialogMessage()); PanelBuilder pb = new PanelBuilder( new FormLayout("4dlu,fill:min(100dlu;default):grow, pref, fill:min(100dlu;default):grow,4dlu", //$NON-NLS-1$ "4dlu,pref,4dlu, pref, 6dlu, pref,4dlu")); //$NON-NLS-1$ JLabel label = new JLabel(getDialogMessage()); JProgressBar progressBar = new JProgressBar(); final MonitorableImpl monitor = new MonitorableImpl(); if (!setup(monitor, properties)) { // if setup indicates not to continue (returns false), then exit method return; } CellConstraints c = new CellConstraints(); pb.add(label, c.xyw(2, 2, 3)); pb.add(progressBar, c.xyw(2, 4, 3)); pb.add(new JButton(new AbstractAction(getButtonText()) { public void actionPerformed(ActionEvent e) { progressDialog.dispose(); monitor.setCancelled(true); } }), c.xy(3, 6)); progressDialog.add(pb.getPanel()); SPSwingWorker worker = new SPSwingWorker(getSession()) { @Override public void cleanup() throws Exception { if (getDoStuffException() != null) { ASUtils.showExceptionDialog(getSession(), Messages.getString("ProgressAction.unexpectedException"), getDoStuffException()); //$NON-NLS-1$ } ProgressAction.this.cleanUp(monitor); monitor.setFinished(true); progressDialog.dispose(); } @Override public void doStuff() throws Exception { ProgressAction.this.doStuff(monitor, properties); } }; ProgressWatcher.watchProgress(progressBar, monitor); progressDialog.pack(); progressDialog.setVisible(true); new Thread(worker).start(); }
From source file:ca.sqlpower.architect.swingui.ColumnEditPanel.java
License:Open Source License
public ColumnEditPanel(Collection<SQLColumn> cols, final ArchitectSwingSession session) throws SQLObjectException { logger.debug("ColumnEditPanel called"); //$NON-NLS-1$ if (session == null) { throw new NullPointerException("Null session is not allowed"); //$NON-NLS-1$ }//from w w w . j a va 2 s . co m this.session = session; if (cols == null || cols.isEmpty()) { throw new NullPointerException("Null or empty collection of columns is not allowed"); //$NON-NLS-1$ } columns = new ArrayList<SQLColumn>(cols); // if (columns.get(0).getParent() != null) { // columns.get(0).getParent().getPrimaryKeyIndex().addSPListener(this); // for (SQLColumn col : columns) { // col.addSPListener(this); // } // } FormLayout layout = new FormLayout("pref, pref, pref:grow, 4dlu, pref, pref:grow", ""); layout.setColumnGroups(new int[][] { { 3, 6 } }); panel = new JPanel(layout); CellConstraints cc = new CellConstraints(); JCheckBox cb; int row = 1; int width = 5; layout.appendRow(RowSpec.decode("p")); panel.add(makeTitle(Messages.getString("ColumnEditPanel.source")), cc.xyw(2, row++, width)); //$NON-NLS-1$ layout.appendRow(RowSpec.decode("p")); cb = new JCheckBox(); if (cols.size() > 1) { panel.add(cb, cc.xy(1, row)); } colSourceTree = new JTree(); DBTreeModel sourceTreeModel = new DBTreeModel(session.getRootObject(), colSourceTree, false, true, false, false, false) { @Override public Object getChild(Object parent, int index) { if (parent == sourceNotSpecifiedTreeNode) { return null; } else if (parent == getRoot()) { if (index == 0) { return sourceNotSpecifiedTreeNode; } else { return super.getChild(parent, index - 1); } } else { return super.getChild(parent, index); } } @Override public int getChildCount(Object parent) { if (parent == sourceNotSpecifiedTreeNode) { return 0; } else if (parent == getRoot()) { return super.getChildCount(parent) + 1; } else { return super.getChildCount(parent); } } @Override public int getIndexOfChild(Object parent, Object child) { if (parent == sourceNotSpecifiedTreeNode) { return -1; } else if (child == sourceNotSpecifiedTreeNode) { return 0; } else if (parent == getRoot()) { int index = super.getIndexOfChild(parent, child); if (index != -1) { return index + 1; } else { return -1; } } else { return super.getIndexOfChild(parent, child); } } @Override public boolean isLeaf(Object parent) { if (parent == sourceNotSpecifiedTreeNode) { return true; } else { return super.isLeaf(parent); } } }; colSourceTree.setModel(sourceTreeModel); colSourceTree.setRootVisible(false); colSourceTree.setShowsRootHandles(true); colSourceTree.setCellRenderer(new DBTreeCellRenderer() { @Override public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) { super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus); if (!sel && value == sourceNotSpecifiedTreeNode) { setForeground(getTextNonSelectionColor()); } return this; } }); colSourceTree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); colSourceButton = new JButton(); colSourceButton.setAction(new PopupJTreeAction(panel, colSourceTree, colSourceButton, SQLColumn.class)); panel.add(colSourceButton, cc.xyw(2, row++, 2)); componentEnabledMap.put(colSourceTree, cb); layout.appendRow(RowSpec.decode("5dlu")); row++; layout.appendRow(RowSpec.decode("p")); panel.add(makeTitle(Messages.getString("ColumnEditPanel.logicalName")), cc.xyw(2, row++, width)); //$NON-NLS-1$ layout.appendRow(RowSpec.decode("p")); cb = new JCheckBox(); if (cols.size() > 1) { panel.add(cb, cc.xy(1, row)); } panel.add(colLogicalName = new JTextField(), cc.xyw(2, row++, width)); componentEnabledMap.put(colLogicalName, cb); colLogicalName.getDocument().addDocumentListener(new DocumentCheckboxEnabler(cb)); colLogicalName.addComponentListener(new ComponentAdapter() { @Override public void componentShown(ComponentEvent e) { colLogicalName.requestFocusInWindow(); } }); colLogicalName.addFocusListener(new FocusAdapter() { public void focusGained(FocusEvent e) { if (logger.isDebugEnabled()) { logger.debug("focus Gained : " + e); } colLogicalName.selectAll(); } }); layout.appendRow(RowSpec.decode("5dlu")); row++; layout.appendRow(RowSpec.decode("p")); panel.add(makeTitle(Messages.getString("ColumnEditPanel.physicalName")), cc.xyw(2, row++, width)); //$NON-NLS-1$ layout.appendRow(RowSpec.decode("p")); cb = new JCheckBox(); if (cols.size() > 1) { panel.add(cb, cc.xy(1, row)); } panel.add(colPhysicalName = new JTextField(), cc.xyw(2, row++, width)); componentEnabledMap.put(colPhysicalName, cb); colPhysicalName.getDocument().addDocumentListener(new DocumentCheckboxEnabler(cb)); colPhysicalName.addComponentListener(new ComponentAdapter() { @Override public void componentShown(ComponentEvent e) { colPhysicalName.requestFocusInWindow(); } }); colPhysicalName.addFocusListener(new FocusAdapter() { public void focusGained(FocusEvent e) { if (logger.isDebugEnabled()) { logger.debug("focus Gained : " + e); } colPhysicalName.selectAll(); } }); layout.appendRow(RowSpec.decode("5dlu")); row++; layout.appendRow(RowSpec.decode("p")); cb = new JCheckBox(); if (cols.size() > 1) { panel.add(cb, cc.xy(1, row)); } panel.add(colInPK = new JCheckBox(Messages.getString("ColumnEditPanel.inPrimaryKey")), //$NON-NLS-1$ cc.xyw(2, row++, width)); componentEnabledMap.put(colInPK, cb); colInPK.addActionListener(this); colInPK.addActionListener(checkboxEnabler); layout.appendRow(RowSpec.decode("5dlu")); row++; layout.appendRow(RowSpec.decode("p")); panel.add(makeTitle(Messages.getString("ColumnEditPanel.type")), cc.xyw(2, row++, width)); //$NON-NLS-1$ layout.appendRow(RowSpec.decode("p")); cb = new JCheckBox(); if (cols.size() > 1) { panel.add(cb, cc.xy(1, row)); } typeChooserButton = new JButton(Messages.getString("ColumnEditPanel.chooseType")); if (session.isEnterpriseSession()) { colType = new JTree(new SQLTypeTreeModel(session.getEnterpriseSession())); } else { colType = new JTree(new SQLTypeTreeModel(session)); } colType.setCellRenderer(new SQLTypeTreeCellRenderer()); for (int i = 0; i < colType.getRowCount(); i++) { colType.expandRow(i); } colType.setRootVisible(true); colType.setShowsRootHandles(true); colType.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); typeChooserButton .setAction(new PopupJTreeAction(panel, colType, typeChooserButton, UserDefinedSQLType.class)); componentEnabledMap.put(colType, cb); panel.add(typeChooserButton, cc.xyw(2, row++, 2)); layout.appendRow(RowSpec.decode("5dlu")); row++; layout.appendRow(RowSpec.decode("p")); panel.add(makeTitle(Messages.getString("ColumnEditPanel.precision")), cc.xy(3, row)); //$NON-NLS-1$ panel.add(makeTitle(Messages.getString("ColumnEditPanel.scale")), cc.xy(6, row++)); //$NON-NLS-1$ layout.appendRow(RowSpec.decode("p")); panel.add(colPrec = createPrecisionEditor(), cc.xy(3, row)); colPrec.addChangeListener(checkboxEnabler); SPSUtils.makeJSpinnerSelectAllTextOnFocus(colPrec); colPrecCB = new JCheckBox(); panel.add(colPrecCB, cc.xy(2, row)); typeOverrideMap.put(colPrec, colPrecCB); colPrecCB.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { if (colPrecCB.isSelected()) { colPrec.setEnabled(true); } else { colPrec.setEnabled(false); if (colType.getLastSelectedPathComponent() instanceof UserDefinedSQLType) { colPrec.setValue(((UserDefinedSQLType) colType.getLastSelectedPathComponent()) .getPrecision(SQLTypePhysicalPropertiesProvider.GENERIC_PLATFORM)); } } } }); colPrec.setEnabled(false); colScaleCB = new JCheckBox(); panel.add(colScaleCB, cc.xy(5, row)); panel.add(colScale = createScaleEditor(), cc.xy(6, row++)); typeOverrideMap.put(colScale, colScaleCB); colScale.addChangeListener(checkboxEnabler); SPSUtils.makeJSpinnerSelectAllTextOnFocus(colScale); colScaleCB.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { if (colScaleCB.isSelected()) { colScale.setEnabled(true); } else { colScale.setEnabled(false); if (colType.getLastSelectedPathComponent() instanceof UserDefinedSQLType) { colScale.setValue(((UserDefinedSQLType) colType.getLastSelectedPathComponent()) .getScale(SQLTypePhysicalPropertiesProvider.GENERIC_PLATFORM)); } } } }); colScale.setEnabled(false); layout.appendRow(RowSpec.decode("5dlu")); row++; layout.appendRow(RowSpec.decode("p")); panel.add(makeTitle(Messages.getString("ColumnEditPanel.allowsNulls")), cc.xyw(3, row++, width - 1)); //$NON-NLS-1$ layout.appendRow(RowSpec.decode("p")); final JCheckBox colNullCB = new JCheckBox(); panel.add(colNullCB, cc.xy(2, row)); panel.add(colNullable = new JComboBox(YesNoEnum.values()), cc.xy(3, row++)); //$NON-NLS-1$ typeOverrideMap.put(colNullable, colNullCB); colNullable.addActionListener(this); colNullable.addActionListener(checkboxEnabler); colNullCB.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { if (colNullCB.isSelected()) { colNullable.setEnabled(true); } else { colNullable.setEnabled(false); if (colType.getLastSelectedPathComponent() instanceof UserDefinedSQLType) { colNullable.setSelectedItem( YesNoEnum.valueOf(((UserDefinedSQLType) colType.getLastSelectedPathComponent()) .getNullability() == DatabaseMetaData.columnNullable)); } } updateComponents(); } }); colNullable.setEnabled(false); layout.appendRow(RowSpec.decode("3dlu")); row++; layout.appendRow(RowSpec.decode("p")); panel.add(makeTitle(Messages.getString("ColumnEditPanel.autoIncrement")), cc.xyw(3, row++, width - 1)); //$NON-NLS-1$ layout.appendRow(RowSpec.decode("p")); final JCheckBox colAutoIncCB = new JCheckBox(); panel.add(colAutoIncCB, cc.xy(2, row)); panel.add(colAutoInc = new JComboBox(YesNoEnum.values()), cc.xy(3, row++)); //$NON-NLS-1$ typeOverrideMap.put(colAutoInc, colAutoIncCB); colAutoInc.addActionListener(this); colAutoInc.addActionListener(checkboxEnabler); colAutoIncCB.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { if (colAutoIncCB.isSelected()) { colAutoInc.setEnabled(true); } else { colAutoInc.setEnabled(false); if (colType.getLastSelectedPathComponent() instanceof UserDefinedSQLType) { colAutoInc.setSelectedItem(YesNoEnum.valueOf( ((UserDefinedSQLType) colType.getLastSelectedPathComponent()).getAutoIncrement())); } } } }); colAutoInc.setEnabled(false); layout.appendRow(RowSpec.decode("5dlu")); row++; layout.appendRow(RowSpec.decode("p")); panel.add(makeTitle(Messages.getString("ColumnEditPanel.defaultValue")), cc.xyw(3, row++, width - 1)); //$NON-NLS-1$ layout.appendRow(RowSpec.decode("p")); final JCheckBox colDefaultCB = new JCheckBox(); panel.add(colDefaultCB, cc.xy(2, row)); panel.add(colDefaultValue = new JTextField(), cc.xyw(3, row++, width - 1)); colDefaultValue.setEnabled(false); typeOverrideMap.put(colDefaultValue, colDefaultCB); colDefaultValue.addActionListener(this); colDefaultCB.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { if (colDefaultCB.isSelected()) { colDefaultValue.setEnabled(true); } else { colDefaultValue.setEnabled(false); if (colType.getLastSelectedPathComponent() instanceof UserDefinedSQLType) { colDefaultValue.setText(((UserDefinedSQLType) colType.getLastSelectedPathComponent()) .getDefaultValue(SQLTypePhysicalPropertiesProvider.GENERIC_PLATFORM)); } } updateComponents(); } }); layout.appendRow(RowSpec.decode("6dlu")); row++; layout.appendRow(RowSpec.decode("p")); panel.add(makeTitle(Messages.getString("ColumnEditPanel.sequenceName")), cc.xyw(2, row++, width)); //$NON-NLS-1$ layout.appendRow(RowSpec.decode("p")); cb = new JCheckBox(); if (cols.size() > 1) { panel.add(cb, cc.xy(1, row)); } panel.add(colAutoIncSequenceName = new JTextField(), cc.xyw(2, row++, width)); componentEnabledMap.put(colAutoIncSequenceName, cb); colAutoIncSequenceName.getDocument().addDocumentListener(new DocumentCheckboxEnabler(cb)); DocumentListener listener = new DocumentListener() { public void changedUpdate(DocumentEvent e) { syncSequenceName(); } public void insertUpdate(DocumentEvent e) { syncSequenceName(); } public void removeUpdate(DocumentEvent e) { syncSequenceName(); } }; // Listener to update the sequence name when the column name changes colPhysicalName.getDocument().addDocumentListener(listener); colLogicalName.getDocument().addDocumentListener(listener); // Listener to rediscover the sequence naming convention, and reset the // sequence name to its original (according to the column's own sequence // name) naming convention when the user clears the sequence name field colAutoIncSequenceName.addFocusListener(new FocusAdapter() { @Override public void focusLost(FocusEvent e) { if (columns.size() == 1 && colAutoIncSequenceName.getText().trim().equals("")) { //$NON-NLS-1$ // Changing sequence name doesn't make sense in multi-edit // because sequence names have to be unique SQLColumn column = columns.iterator().next(); if (column.getPhysicalName() != null && !column.getPhysicalName().trim().equals("")) { discoverSequenceNamePattern(column.getPhysicalName()); } else { discoverSequenceNamePattern(column.getName()); } syncSequenceName(); } else { if (colPhysicalName.getText() != null && !colPhysicalName.getText().trim().equals("")) { discoverSequenceNamePattern(colPhysicalName.getText()); } else { discoverSequenceNamePattern(colLogicalName.getText()); } } } }); layout.appendRow(RowSpec.decode("5dlu")); row++; layout.appendRow(RowSpec.decode("p")); panel.add(makeTitle(Messages.getString("ColumnEditPanel.remarks")), cc.xyw(2, row++, width)); //$NON-NLS-1$ layout.appendRow(RowSpec.decode("pref:grow")); cb = new JCheckBox(); if (cols.size() > 1) { panel.add(cb, cc.xy(1, row, "center, top")); } panel.add(new JScrollPane(colRemarks = new JTextArea()), cc.xyw(2, row++, width, "fill, fill")); componentEnabledMap.put(colRemarks, cb); colRemarks.getDocument().addDocumentListener(new DocumentCheckboxEnabler(cb)); colRemarks.setRows(5); colRemarks.setLineWrap(true); colRemarks.setWrapStyleWord(true); // start with all components enabled; if there are multiple columns // to edit, these checkboxes will be turned off selectively for the // mismatching values for (JCheckBox checkbox : componentEnabledMap.values()) { checkbox.setSelected(true); } //The type covers multiple fields and needs a different check to see if //it should start enabled. All type info must match across the objects //for the checkbox to start selected if (cols.size() > 1) { Iterator<SQLColumn> colIterator = cols.iterator(); SQLColumn firstCol = colIterator.next(); while (colIterator.hasNext()) { SQLColumn nextCol = colIterator.next(); if (!firstCol.getTypeName().equals(nextCol.getTypeName()) || firstCol.getPrecision() != nextCol.getPrecision() || firstCol.getScale() != nextCol.getScale() || firstCol.getNullable() != nextCol.getNullable() || firstCol.isAutoIncrement() != nextCol.isAutoIncrement() || !firstCol.getDefaultValue().equals(nextCol.getDefaultValue())) { componentEnabledMap.get(colType).setSelected(false); break; } } } for (SQLColumn col : cols) { logger.debug("Updating component state for column " + col); updateComponents(col); } // TODO only give focus to column name if it's enabled? colPhysicalName.requestFocus(); colPhysicalName.selectAll(); SQLPowerUtils.listenToHierarchy(session.getRootObject(), obsolesenceListener); SQLPowerUtils.listenToHierarchy(session.getRootObject(), this); panel.addAncestorListener(cleanupListener); colSourceTree.addTreeSelectionListener(new TreeSelectionListener() { @Override public void valueChanged(TreeSelectionEvent e) { TreePath path = e.getNewLeadSelectionPath(); if (path != null) { Object selection = path.getLastPathComponent(); if (selection instanceof SQLColumn) { SQLColumn sourceColumn = (SQLColumn) selection; colSourceButton.setText( DDLUtils.toQualifiedName(sourceColumn.getParent()) + "." + sourceColumn.getName()); } else { colSourceButton.setText(Messages.getString("ColumnEditPanel.noneSpecified")); } } else { colSourceButton.setText(Messages.getString("ColumnEditPanel.noneSpecified")); } } }); colType.addTreeSelectionListener(new TreeSelectionListener() { public void valueChanged(TreeSelectionEvent e) { TreePath path = e.getNewLeadSelectionPath(); if (path != null) { Object selection = path.getLastPathComponent(); if (selection instanceof UserDefinedSQLType) { typeChooserButton.setText(((UserDefinedSQLType) selection).getName()); updateSQLTypeComponents((UserDefinedSQLType) selection, false); } else { typeChooserButton.setText(Messages.getString("ColumnEditPanel.chooseType")); } } else { typeChooserButton.setText(Messages.getString("ColumnEditPanel.chooseType")); } } }); }
From source file:ca.sqlpower.architect.swingui.CompareDMFrame.java
License:Open Source License
public JComponent mainFrame() { FormLayout layout = new FormLayout( "4dlu,fill:min(150dlu;default):grow, 6dlu, fill:min(150dlu;default):grow, 4dlu", // columns //$NON-NLS-1$ " min(300dlu;default), 6dlu, min(300dlu;default), 6dlu, min(300dlu;default), 3dlu, fill:min(300dlu;default):grow, 3dlu, 20dlu,6dlu,20dlu"); // rows //$NON-NLS-1$ CellConstraints cc = new CellConstraints(); JLabel titleLabel = new JLabel(title); Font oldFont = titleLabel.getFont(); Font titleFont = new Font(oldFont.getName(), oldFont.getStyle(), oldFont.getSize() * 2); titleLabel.setFont(titleFont);/*from w w w .j a va2s . c o m*/ JLabel subTitleLabel = new JLabel(whatTheHeckIsGoingOn); leftOutputArea = new JTextPane(); leftOutputArea.setMargin(new Insets(6, 10, 4, 6)); leftOutputArea.setDocument(sourceOutputText); leftOutputArea.setEditable(false); JPanel comparePanel = new JPanel(new GridLayout(1, 2)); JScrollPane sp = new JScrollPane(comparePanel); int lineHeight = 16; try { FontMetrics fm = leftOutputArea.getFontMetrics(leftOutputArea.getFont()); lineHeight = fm.getHeight() + 2; } catch (Exception e) { lineHeight = 16; } // If the increments are not set, klicking on the up or down arrow of the scrollbar // will scroll the display by one pixel, which is definitely not what the user wants // by setting unitIncrement to the font's height the display will scroll by approx. one line sp.getVerticalScrollBar().setUnitIncrement(lineHeight); // Clicking in the "empty" area of the scrollbar will scroll by 10 lines sp.getVerticalScrollBar().setBlockIncrement(lineHeight * 10); comparePanel.add(leftOutputArea); Action sourceCopy = new sourceCopyAction(sourceOutputText); Action sourceSave = new AbstractAction() { public void actionPerformed(ActionEvent e) { SPSUtils.saveDocument(CompareDMFrame.this, sourceOutputText, (FileExtensionFilter) SPSUtils.TEXT_FILE_FILTER); } }; CloseAction close = new CloseAction(); close.setDialog(this); SPSUtils.makeJDialogCancellable(this, close); ButtonBarBuilder sourcebbBuilder = new ButtonBarBuilder(); JButton copySource = new JButton(sourceCopy); copySource.setText(Messages.getString("CompareDMFrame.copy")); //$NON-NLS-1$ sourcebbBuilder.addGridded(copySource); sourcebbBuilder.addRelatedGap(); sourcebbBuilder.addGlue(); JButton sourceSaveButton = new JButton(sourceSave); sourceSaveButton.setText(Messages.getString("CompareDMFrame.save")); //$NON-NLS-1$ sourcebbBuilder.addGridded(sourceSaveButton); sourcebbBuilder.addRelatedGap(); sourcebbBuilder.addGlue(); ButtonBarBuilder closeBar = new ButtonBarBuilder(); JButton closeButton = new JButton(close); closeButton.setText(Messages.getString("CompareDMFrame.close")); //$NON-NLS-1$ closeBar.addGridded(closeButton); PanelBuilder pb; layout.setColumnGroups(new int[][] { { 2, 4 } }); JPanel p = logger.isDebugEnabled() ? new FormDebugPanel(layout) : new JPanel(layout); pb = new PanelBuilder(layout, p); pb.setDefaultDialogBorder(); rightOutputArea = new JTextPane(); rightOutputArea.setMargin(new Insets(6, 10, 4, 6)); rightOutputArea.setDocument(targetOutputText); rightOutputArea.setEditable(false); comparePanel.add(rightOutputArea); Action targetCopy = new targetCopyAction(targetOutputText); //Sets the target Buttons ButtonBarBuilder targetbbBuilder = new ButtonBarBuilder(); JButton copyTarget = new JButton(targetCopy); copyTarget.setText(Messages.getString("CompareDMFrame.copy")); //$NON-NLS-1$ targetbbBuilder.addGridded(copyTarget); targetbbBuilder.addRelatedGap(); targetbbBuilder.addGlue(); Action targetSaveAction = new AbstractAction() { public void actionPerformed(ActionEvent e) { SPSUtils.saveDocument(CompareDMFrame.this, targetOutputText, (FileExtensionFilter) SPSUtils.TEXT_FILE_FILTER); } }; JButton targetSave = new JButton(targetSaveAction); targetSave.setText(Messages.getString("CompareDMFrame.save")); //$NON-NLS-1$ targetbbBuilder.addGridded(targetSave); targetbbBuilder.addRelatedGap(); targetbbBuilder.addGlue(); getRootPane().setDefaultButton(targetSave); pb.add(titleLabel, cc.xyw(2, 1, 3, "c,c")); //$NON-NLS-1$ pb.add(subTitleLabel, cc.xyw(2, 3, 3, "c,c")); //$NON-NLS-1$ pb.add(new JLabel(Messages.getString("CompareDMFrame.older")), cc.xy(2, 5)); //$NON-NLS-1$ pb.add(new JLabel(Messages.getString("CompareDMFrame.newer")), cc.xy(4, 5)); //$NON-NLS-1$ pb.add(sp, cc.xyw(2, 7, 3)); pb.add(sourcebbBuilder.getPanel(), cc.xy(2, 9, "l,c")); //$NON-NLS-1$ pb.add(targetbbBuilder.getPanel(), cc.xy(4, 9, "r,c")); //$NON-NLS-1$ pb.add(closeBar.getPanel(), cc.xy(4, 11, "r,c")); //$NON-NLS-1$ return pb.getPanel(); }
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);//from w w w .ja v a 2 s .c o 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.DataMoverPanel.java
License:Open Source License
public DataMoverPanel(ArchitectSwingSession session) throws SQLObjectException { this.session = session; setupDBTrees();/*w w w. ja v a 2 s.co m*/ okAction.setEnabled(false); sourceTree = new JTree(); final DBTreeModel sourceTreeModel = new DBTreeModel(treeRoot, sourceTree); sourceTree.setModel(sourceTreeModel); sourceTree.setRootVisible(false); sourceTree.setShowsRootHandles(true); sourceTree.setCellRenderer(new DBTreeCellRenderer()); sourceTree.addTreeSelectionListener(dbTreeListener); destTree = new JTree(); final DBTreeModel destTreeModel = new DBTreeModel(treeRoot, sourceTree); destTree.setModel(destTreeModel); destTree.setRootVisible(false); destTree.setShowsRootHandles(true); destTree.setCellRenderer(new DBTreeCellRenderer()); destTree.addTreeSelectionListener(dbTreeListener); PanelBuilder pb = new PanelBuilder(new FormLayout("pref:grow,8dlu,pref:grow", //$NON-NLS-1$ "pref,4dlu,fill:pref:grow,4dlu,pref,4dlu,pref")); //$NON-NLS-1$ pb.getLayout().addGroupedColumn(1); pb.getLayout().addGroupedColumn(3); CellConstraints cc = new CellConstraints(); pb.addLabel(Messages.getString("DataMoverPanel.sourceLabel"), cc.xy(1, 1)); //$NON-NLS-1$ pb.addLabel(Messages.getString("DataMoverPanel.destinationLabel"), cc.xy(3, 1)); //$NON-NLS-1$ pb.add(new JScrollPane(sourceTree), cc.xy(1, 3)); pb.add(new JScrollPane(destTree), cc.xy(3, 3)); session.getDataSources().addDatabaseListChangeListener(new DatabaseListChangeListener() { public void databaseAdded(DatabaseListChangeEvent e) { try { setupDBTrees(); } catch (SQLObjectException ex) { SPSUtils.showExceptionDialogNoReport(panel, Messages.getString("DataMoverPanel.couldNotFindDB"), //$NON-NLS-1$ ex); } } public void databaseRemoved(DatabaseListChangeEvent e) { try { setupDBTrees(); } catch (SQLObjectException ex) { SPSUtils.showExceptionDialogNoReport(panel, Messages.getString("DataMoverPanel.couldNotFindDB"), //$NON-NLS-1$ ex); } } }); pb.add(new JButton(new DatabaseConnectionManagerAction(session)), cc.xy(1, 5)); pb.add(truncateDestinationTableBox = new JCheckBox( Messages.getString("DataMoverPanel.truncateDestinationTableOption")), cc.xy(3, 5)); //$NON-NLS-1$ pb.add(ButtonBarFactory.buildOKCancelBar(new JButton(okAction), new JButton(cancelAction)), cc.xyw(1, 7, 3)); pb.setDefaultDialogBorder(); panel = pb.getPanel(); }
From source file:ca.sqlpower.architect.swingui.DefaultColumnPanel.java
License:Open Source License
public void setUp() { FormLayout layout = new FormLayout("30dlu, pref:grow, 20dlu, pref:grow, 30dlu", ""); layout.setColumnGroups(new int[][] { { 2, 4 } }); CellConstraints cc = new CellConstraints(); this.setLayout(layout); int row = 1;// w w w. j a v a 2 s. c o m layout.appendRow(RowSpec.decode("10dlu")); row++; layout.appendRow(RowSpec.decode("p")); add(makeTitle(Messages.getString("DefaultColumnPanel.explaination")), cc.xyw(2, row++, 3)); //$NON-NLS-1$ layout.appendRow(RowSpec.decode("15dlu")); row++; layout.appendRow(RowSpec.decode("p")); add(new JLabel(Messages.getString("DefaultColumnPanel.name")), cc.xy(2, row)); add(new JLabel(Messages.getString("DefaultColumnPanel.type")), cc.xy(4, row++)); //$NON-NLS-1$ layout.appendRow(RowSpec.decode("5dlu")); row++; layout.appendRow(RowSpec.decode("p")); add(colName = new JTextField(), cc.xy(2, row)); colName.addComponentListener(new ComponentAdapter() { @Override public void componentShown(ComponentEvent e) { colName.requestFocusInWindow(); } }); colName.addFocusListener(new FocusAdapter() { public void focusGained(FocusEvent e) { if (logger.isDebugEnabled()) { logger.debug("focus Gained : " + e); } colName.selectAll(); } }); add(colType = new JComboBox(SQLType.getTypes()), cc.xy(4, row++)); colType.setSelectedItem(null); layout.appendRow(RowSpec.decode("15dlu")); row++; layout.appendRow(RowSpec.decode("p")); add(new JLabel(Messages.getString("DefaultColumnPanel.precision")), cc.xy(2, row)); //$NON-NLS-1$ add(new JLabel(Messages.getString("DefaultColumnPanel.scale")), cc.xy(4, row++)); //$NON-NLS-1$ layout.appendRow(RowSpec.decode("5dlu")); row++; layout.appendRow(RowSpec.decode("p")); add(colPrec = new JSpinner(new SpinnerNumberModel(0, 0, Integer.MAX_VALUE, 1)), cc.xy(2, row)); SPSUtils.makeJSpinnerSelectAllTextOnFocus(colPrec); add(colScale = new JSpinner(new SpinnerNumberModel(0, 0, Integer.MAX_VALUE, 1)), cc.xy(4, row++)); SPSUtils.makeJSpinnerSelectAllTextOnFocus(colScale); layout.appendRow(RowSpec.decode("15dlu")); row++; layout.appendRow(RowSpec.decode("p")); add(colInPK = new JCheckBox(Messages.getString("DefaultColumnPanel.inPrimaryKey")), cc.xyw(2, row++, 3)); //$NON-NLS-1$ colInPK.addActionListener(this); layout.appendRow(RowSpec.decode("15dlu")); row++; layout.appendRow(RowSpec.decode("p")); add(colNullable = new JCheckBox(Messages.getString("DefaultColumnPanel.allowsNulls")), cc.xyw(2, row++, 3)); //$NON-NLS-1$ colNullable.addActionListener(this); layout.appendRow(RowSpec.decode("15dlu")); row++; layout.appendRow(RowSpec.decode("p")); add(colAutoInc = new JCheckBox(Messages.getString("DefaultColumnPanel.autoIncrement")), //$NON-NLS-1$ cc.xyw(2, row++, 3)); colAutoInc.addActionListener(this); layout.appendRow(RowSpec.decode("15dlu")); row++; layout.appendRow(RowSpec.decode("p")); add(new JLabel(Messages.getString("DefaultColumnPanel.remarks")), cc.xyw(2, row++, 4)); //$NON-NLS-1$ layout.appendRow(RowSpec.decode("5dlu")); row++; layout.appendRow(RowSpec.decode("p")); add(new JScrollPane(colRemarks = new JTextArea()), cc.xyw(2, row++, 3, "fill, fill")); colRemarks.setRows(8); colRemarks.setLineWrap(true); colRemarks.setWrapStyleWord(true); layout.appendRow(RowSpec.decode("15dlu")); row++; layout.appendRow(RowSpec.decode("p")); add(new JLabel(Messages.getString("DefaultColumnPanel.default")), cc.xyw(2, row++, 4)); layout.appendRow(RowSpec.decode("5dlu")); row++; layout.appendRow(RowSpec.decode("p")); add(new JScrollPane(colDefault = new JTextArea()), cc.xyw(2, row++, 3)); colDefault.setLineWrap(false); layout.appendRow(RowSpec.decode("15dlu")); row++; //TODO only give focus to column name if it's enabled? colName.requestFocus(); colName.selectAll(); }
From source file:ca.sqlpower.architect.swingui.enterprise.CompareRevisionsPanel.java
License:Open Source License
public CompareRevisionsPanel(ArchitectClientSideSession session, Action closeAction, long fromRevision, long toRevision) { this.session = session; revisionsTableLeft = new RevisionsTable(this.session, fromRevision, toRevision); revisionsTableRight = new RevisionsTable(this.session, fromRevision, toRevision); final JCheckBox autoCompare = new JCheckBox("Auto-compare", true); final ListSelectionListener listSelectionListener = new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { refreshPanel();//from w ww.j av a 2 s.c o m if (autoCompare.isSelected() && revisionsTableLeft.getSelectedRow() > -1 && revisionsTableRight.getSelectedRow() > -1) { compareAction.actionPerformed(null); } } }; autoCompare.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { listSelectionListener.valueChanged(null); } }); revisionsTableLeft.getSelectionModel().addListSelectionListener(listSelectionListener); revisionsTableRight.getSelectionModel().addListSelectionListener(listSelectionListener); comparePane = new JTextPane(); comparePane.setEditable(false); comparePane.setMargin(new Insets(6, 10, 4, 6)); JScrollPane sp = new JScrollPane(comparePane); sp.setPreferredSize(revisionsTableLeft.getScrollPane().getPreferredSize()); CellConstraints cc = new CellConstraints(); DefaultFormBuilder revisionListsBuilder = new DefaultFormBuilder( new FormLayout("default:grow, 5dlu, default:grow", "pref, 2dlu, default:grow")); revisionListsBuilder.add(new JLabel("From revision..."), cc.xy(1, 1)); revisionListsBuilder.add(new JLabel("To revision..."), cc.xy(3, 1)); revisionListsBuilder.add(revisionsTableLeft.getScrollPane(), cc.xy(1, 3)); revisionListsBuilder.add(revisionsTableRight.getScrollPane(), cc.xy(3, 3)); DefaultFormBuilder buttonBarBuilder = new DefaultFormBuilder(new FormLayout("pref")); buttonBarBuilder.append(new JButton(compareAction)); buttonBarBuilder.append(new JButton(closeAction)); buttonBarBuilder.append(autoCompare); DefaultFormBuilder bottomBuilder = new DefaultFormBuilder( new FormLayout("default:grow, right:default", "default:grow")); bottomBuilder.add(sp, cc.xy(1, 1)); bottomBuilder.add(buttonBarBuilder.getPanel(), cc.xy(2, 1)); DefaultFormBuilder builder = new DefaultFormBuilder( new FormLayout("default:grow", "default:grow, 5dlu, default:grow")); builder.add(revisionListsBuilder.getPanel(), cc.xy(1, 1)); builder.add(bottomBuilder.getPanel(), cc.xy(1, 3)); builder.setDefaultDialogBorder(); panel = builder.getPanel(); panel.setPreferredSize(new Dimension(900, 650)); refreshPanel(); }
From source file:ca.sqlpower.architect.swingui.enterprise.GroupEditorPanel.java
License:Open Source License
public GroupEditorPanel(Group baseGroup, String username, Action closeAction) { this.group = baseGroup; this.securityWorkspace = (ArchitectSwingProject) group.getParent(); this.username = username; this.closeAction = closeAction; final Dimension prefScrollPaneDimension = new Dimension(250, 300); nameLabel = new JLabel("Group Name"); nameTextField = new JTextField(25); nameTextField.setText(group.getName()); nameTextField.getDocument().addDocumentListener(textFieldListener); ListCellRenderer userListCellRenderer = new DefaultListCellRenderer() { @Override/*from ww w . j av a2 s . co m*/ public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); setIcon(USER_ICON); return this; } }; availableUsersLabel = new JLabel("Available Users"); availableUsersList = new JList(new DefaultListModel()); availableUsersList.setCellRenderer(userListCellRenderer); availableUsersScrollPane = new JScrollPane(availableUsersList); availableUsersScrollPane.setPreferredSize(prefScrollPaneDimension); currentUsersLabel = new JLabel("Current Users"); currentUsersList = new JList(new DefaultListModel()); currentUsersList.setCellRenderer(userListCellRenderer); currentUsersScrollPane = new JScrollPane(currentUsersList); currentUsersScrollPane.setPreferredSize(prefScrollPaneDimension); Grant globalGrant = null; for (Grant grant : baseGroup.getChildren(Grant.class)) { if (grant.isSystemLevel() && grant.getType() != null && grant.getType().equals(ArchitectSwingProject.class.getName())) { if (globalGrant != null) { throw new IllegalStateException( "Multiple grants for system level workspace under the same group found."); } globalGrant = grant; } } if (globalGrant != null) { privilegesEditorPanel = new PrivilegesEditorPanel(globalGrant, baseGroup, null, ArchitectSwingProject.class.getName(), username, securityWorkspace); } else { privilegesEditorPanel = new PrivilegesEditorPanel(null, baseGroup, 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, 5dlu")); upperPanelBuilder.add(nameLabel, cc.xy(1, 1)); upperPanelBuilder.add(nameTextField, cc.xyw(3, 1, 1)); 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(availableUsersLabel, cc.xy(1, 1)); centrePanelBuilder.add(currentUsersLabel, cc.xy(5, 1)); centrePanelBuilder.add(availableUsersScrollPane, cc.xy(1, 2)); centrePanelBuilder.add(buttonPanelBuilder.getPanel(), cc.xy(3, 2)); centrePanelBuilder.add(currentUsersScrollPane, cc.xy(5, 2)); DefaultFormBuilder builder = new DefaultFormBuilder( new FormLayout("pref:grow", "pref, 3dlu, pref:grow, 5dlu, pref")); builder.add(upperPanelBuilder.getPanel(), cc.xy(1, 1)); builder.add(centrePanelBuilder.getPanel(), cc.xy(1, 3)); 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, 5)); builder.setDefaultDialogBorder(); panel = builder.getPanel(); fillUserLists(); disableIfNecessary(); }