Example usage for com.jgoodies.forms.layout CellConstraints xywh

List of usage examples for com.jgoodies.forms.layout CellConstraints xywh

Introduction

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

Prototype

public CellConstraints xywh(int col, int row, int colSpan, int rowSpan) 

Source Link

Document

Sets the column, row, width, and height; uses default alignments.

Examples:

 cc.xywh(1, 3, 2, 1); cc.xywh(1, 3, 7, 3); 

Usage

From source file:edu.ku.brc.specify.tasks.subpane.security.IndvPanelPermEditor.java

License:Open Source License

/**
 * @param panelNameKey//from   ww  w .java2 s . c  o  m
 * @param descKey
 * @param enumerator
 * @param listener
 * @param readOnly
 */
public IndvPanelPermEditor(final String panelNameKey, final String descKey,
        final PermissionEnumerator enumerator, final ChangeListener listener, final boolean readOnly) {
    super(new BorderLayout());

    this.panelName = UIRegistry.getResourceString(panelNameKey);
    this.enumerator = enumerator;
    this.principal = null;
    this.listener = listener;
    this.readOnly = readOnly;

    if (doAddTableEditor) {
        tblEnumerator = new TablePermissionEnumerator();
        tblEnumerator.setTableIds(new int[] {});
        tableEditor = new PermissionEditor("SEC_TABLES", tblEnumerator, listener);
        tableEditor.setVisible(false);
    }

    list = new JList(model);
    JScrollPane sp = UIHelper.createScrollPane(list);
    list.setCellRenderer(new PermWrapperRenderer());

    mainPanel = new JPanel(new BorderLayout());

    PanelBuilder pb = new PanelBuilder(new FormLayout("p,10px,p:g,5px,p,5px,f:p:g", "p,2px,f:p:g"), this);
    CellConstraints cc = new CellConstraints();

    pb.add(UIHelper.createI18NLabel(descKey, SwingConstants.CENTER), cc.xy(1, 1));
    pb.add(sp, cc.xy(1, 3));
    pb.add(mainPanel, cc.xywh(3, 1, 1, 3));

    // This needs a little work for saving and refreshing
    // I am disabling it for now
    if (doAddTableEditor) {
        pb.add(new VerticalSeparator(new Color(224, 224, 224), new Color(124, 124, 124)), cc.xywh(5, 1, 1, 3));
        pb.add(tableEditor, cc.xy(7, 3));
    }

    //basicEditor.addChangeListener(listener);

    list.addListSelectionListener(new ListSelectionListener() {
        @Override
        public void valueChanged(ListSelectionEvent e) {
            if (!e.getValueIsAdjusting()) {
                if (editor != null) {
                    editor.removeChangeListener(listener);
                    mainPanel.remove(editor.getUIComponent());

                    if (editor.hasChanged() && prevRowData != null) {
                        prevRowData.setPermissions(editor.getPermissions());
                        editor.setChanged(false);
                    }
                }

                PermissionEditorRowIFace rowData = (PermissionEditorRowIFace) list.getSelectedValue();
                if (rowData != null) {
                    editor = rowData.getEditorPanel();
                    if (editor == null) {
                        editor = basicEditor;
                    }

                    for (int i = 1; i < 9; i *= 2) {
                        editor.setOverrideText(i, rowData.getOverrideText(i), readOnly);
                    }
                    editor.setTitle(rowData.getTitle());
                    editor.setPermissions(rowData.getPermissions());

                    if (doAddTableEditor) {
                        int[] tableIds = editor.getAssociatedTableIds();
                        if (tableIds != null && tableIds.length > 0) {
                            tblEnumerator.setTableIds(tableIds);
                            tableEditor.setVisible(true);

                            if (tableEditor != null && principal != null) {
                                tableEditor.updateData(principal, overrulingPrincipal, existingPerms,
                                        overrulingPerms, userType);
                            }

                        } else {
                            tableEditor.setVisible(false);
                        }
                    }

                    mainPanel.add(editor.getUIComponent(), BorderLayout.CENTER);
                    mainPanel.invalidate();
                    mainPanel.validate();
                    mainPanel.repaint();
                }
                prevRowData = rowData;
                editor.addChangeListener(listener);
            }
        }
    });
}

From source file:edu.ku.brc.specify.tasks.subpane.wb.EditFormControlDlg.java

License:Open Source License

@Override
public void createUI() {
    if (xCoord == null) {
        super.createUI();

        isTextField = inputPanel.getComp() instanceof JTextComponent;
        isFormattedText = inputPanel.getComp() instanceof ValFormattedTextField;

        int y = 1;
        CellConstraints cc = new CellConstraints();
        PanelBuilder panelBlder = new PanelBuilder(new FormLayout("p,2px,p,p:g", UIHelper
                .createDuplicateJGoodiesDef("p", "2px", 8 + (isTextField && !isFormattedText ? 4 : 0))));
        JPanel panel = panelBlder.getPanel();

        Dimension canvasSize = formPane.getSize();
        Dimension controlSize = inputPanel.getSize();

        panelBlder.add(createI18NFormLabel("WB_X"), cc.xy(1, y));
        panelBlder.add(xCoord = new ValSpinner(0, canvasSize.width - controlSize.width, false, false),
                cc.xy(3, y));//  ww w.j  av a2s  .  c om
        y += 2;

        panelBlder.add(createI18NFormLabel("WB_Y"), cc.xy(1, y));
        panelBlder.add(yCoord = new ValSpinner(0, canvasSize.height - controlSize.height, false, false),
                cc.xy(3, y));
        y += 2;

        panelBlder.add(createI18NFormLabel("WB_LABEL"), cc.xy(1, y));
        panelBlder.add(labelTF = createTextField(25), cc.xywh(3, y, 2, 1));
        y += 2;

        if (isTextField) {
            panelBlder.add(createI18NFormLabel("WB_FIELD_LEN"), cc.xy(1, y));
            panelBlder.add(fieldWidth = new ValSpinner(0, 100, false, false), cc.xy(3, y));
            y += 2;

            if (!isFormattedText) {
                panelBlder.add(rowsLabels = createI18NFormLabel("WB_NUM_ROWS"), cc.xy(1, y));
                panelBlder.add(numRows = new ValSpinner(1, 25, false, false), cc.xy(3, y));
                y += 2;

                panelBlder.add(typeLabel = createI18NFormLabel("WB_FIELD_TYPE"), cc.xy(1, y));
                panelBlder.add(textFieldType = createComboBox(
                        new Object[] { getResourceString("WB_TEXTFIELD"), getResourceString("WB_TEXTAREA") }),
                        cc.xy(3, y));
                setControlSize(textFieldType);
                y += 2;
            }
        }

        fill();

        if (fieldWidth != null) {
            origFieldLen = ((Integer) fieldWidth.getValue()).shortValue();
        }

        if (textFieldType != null) {
            origFieldTypeIndex = textFieldType.getSelectedIndex();
        }

        if (numRows != null) {
            origRows = ((Integer) numRows.getValue()).shortValue();
            origFieldType = inputPanel.getWbtmi().getFieldType();
            numRows.addChangeListener(this);
        }

        xCoord.addChangeListener(this);
        yCoord.addChangeListener(this);

        if (isTextField) {
            fieldWidth.addChangeListener(this);
        }

        if (textFieldType != null) {
            textFieldType.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    fieldTypeChanged = textFieldType.getSelectedIndex() != fieldTypeIndex;

                    if (numRows != null) {
                        adjustTextRowsUI();
                        numRows.setValue(textFieldType.getSelectedIndex() == 0 ? FormPane.DEFAULT_TEXTFIELD_ROWS
                                : (origRows == 1 ? FormPane.DEFAULT_TEXTAREA_ROWS : origRows));
                    }
                }
            });
        }
        labelTF.getDocument().addDocumentListener(this);

        mainPanel.add(panel, BorderLayout.CENTER);

        pack();
    }
}

From source file:edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadMainPanel.java

License:Open Source License

/**
 * Hides the validation error msg list./*from  w w w.j  a  v a 2 s.co  m*/
 */
protected void hideValidationErrors() {
    CellConstraints cc = new CellConstraints();
    msgPane.remove(validationErrorPanel);
    msgPane.remove(msgListSB);
    msgPane.add(msgListSB, cc.xywh(1, 1, 1, 2));
    msgPane.validate();
}

From source file:edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadMainPanel.java

License:Open Source License

public void buildUI() {
    CellConstraints cc = new CellConstraints();
    setLayout(new FormLayout(
            "3dlu:none, fill:50dlu:grow(0.30), 20dlu:none, fill:50dlu:grow(0.70), 5dlu:none, r:max(50dlu;pref), 3dlu:none",
            "2dlu:none, fill:m:none, 4dlu:none, t:m:none, 2dlu:none, fill:75dlu:grow, 5dlu:none"));

    JLabel title = createLabel(getResourceString("WB_UPLOAD_FORM_TITLE"));
    title.setFont(title.getFont().deriveFont(Font.BOLD));
    title.setHorizontalAlignment(SwingConstants.LEFT);
    add(title, cc.xywh(2, 2, 5, 1));

    JPanel pPane = new JPanel(new FormLayout("fill:pref:grow, fill:pref:none", "center:m:grow"));
    currOpProgress = createProgressBar();

    pPane.add(currOpProgress, cc.xy(1, 1));
    cancelBtn = createButton(getResourceString("WB_UPLOAD_CANCEL"));
    cancelBtn.setActionCommand(CANCEL_OPERATION);
    pPane.add(cancelBtn, cc.xy(2, 1));/*from   w ww.  j  a  v a 2  s  .c o m*/
    add(pPane, cc.xywh(4, 2, 3, 1));

    add(new JSeparator(SwingConstants.HORIZONTAL), cc.xywh(2, 3, 5, 1));

    uploadTblLbl = createLabel(getResourceString("WB_UPLOAD_AFFECTED_TBLS_LIST"));
    add(uploadTblLbl, cc.xy(2, 4));

    uploadTblPanel = new JPanel(new CardLayout());
    uploadTbls = new JList();
    JScrollPane sp = new JScrollPane(uploadTbls, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
            ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
    uploadTblPanel.add(sp, "list");
    uploadTblTbl = new JTable() {
        @Override
        public boolean isCellEditable(int row, int column) {
            return false;
        }
    };
    uploadTblTbl.setCellSelectionEnabled(false);
    sp = new JScrollPane(uploadTblTbl, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
            ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    uploadTblPanel.add(sp, "table");

    add(uploadTblPanel, cc.xy(2, 6));

    msgPane = new JPanel(new FormLayout("fill:m:grow", "fill:pref:grow, fill:m:grow"));

    msgLbl = createLabel(getResourceString("WB_UPLOAD_MSG_LIST"));
    add(msgLbl, cc.xy(4, 4));

    msgList = new JList(new DefaultListModel()) {

        /* (non-Javadoc)
         * @see javax.swing.JList#getToolTipText(java.awt.event.MouseEvent)
         */
        @Override
        public String getToolTipText(MouseEvent event) {
            //Get the mouse location
            java.awt.Point point = event.getPoint();

            //Get the item in the list box at the mouse location
            int index = this.locationToIndex(point);

            //Get the value of the item in the list
            return this.getModel().getElementAt(index).toString();
        }
    };

    msgListSB = new JScrollPane(msgList, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
            ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
    msgPane.add(msgListSB, cc.xywh(1, 1, 1, 2));

    validationErrorPanel = new JPanel(new BorderLayout());
    validationErrorList = new JList(new DefaultListModel()) {
        /* (non-Javadoc)
         * @see javax.swing.JList#getToolTipText(java.awt.event.MouseEvent)
         */
        @Override
        public String getToolTipText(MouseEvent event) {
            //Get the mouse location
            java.awt.Point point = event.getPoint();

            //Get the item in the list box at the mouse location
            int index = this.locationToIndex(point);

            //Get the value of the item in the list
            return this.getModel().getElementAt(index).toString();
        }
    };
    validationErrorPanel.add(new JScrollPane(validationErrorList,
            ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER),
            BorderLayout.CENTER);
    printBtn = createButton(getResourceString("WB_UPLOAD_PRINT_MESSAGES_BTN"));
    printBtn.setActionCommand(PRINT_INVALID);
    JPanel pbtnPane = new JPanel(new FormLayout("fill:m:grow, right:max(50dlu;pref)", "c:m"));
    pbtnPane.add(printBtn, cc.xy(2, 1));
    validationErrorPanel.add(pbtnPane, BorderLayout.SOUTH);

    add(msgPane, cc.xy(4, 6));

    JPanel btnPane = new JPanel(new FormLayout("f:max(50dlu;pref)", "c:m, c:m, c:m, c:m, c:m, c:m"));
    validateContentBtn = createButton(getResourceString("WB_UPLOAD_VALIDATE_CONTENT_BTN"));
    validateContentBtn.setActionCommand(VALIDATE_CONTENT);
    viewSettingsBtn = createButton(getResourceString("WB_UPLOAD_SETTINGS_BTN"));
    viewSettingsBtn.setActionCommand(VIEW_SETTINGS);
    doUploadBtn = createButton(getResourceString("WB_UPLOAD_BTN"));
    doUploadBtn.setActionCommand(DO_UPLOAD);
    viewUploadBtn = createButton(getResourceString("WB_UPLOAD_VIEW_BTN"));
    viewUploadBtn.setActionCommand(VIEW_UPLOAD);
    closeBtn = createButton(getResourceString("CLOSE"));
    closeBtn.setActionCommand(CLOSE_UI);
    undoBtn = createButton(getResourceString("WB_UPLOAD_UNDO_BTN"));
    undoBtn.setActionCommand(UNDO_UPLOAD);
    undoBtn.setVisible(!isUpdateUpload);

    btnPane.add(validateContentBtn, cc.xy(1, 1));
    btnPane.add(doUploadBtn, cc.xy(1, 2));
    btnPane.add(viewUploadBtn, cc.xy(1, 3));
    btnPane.add(viewSettingsBtn, cc.xy(1, 4));
    btnPane.add(undoBtn, cc.xy(1, 5));
    btnPane.add(closeBtn, cc.xy(1, 6));
    add(btnPane, cc.xy(6, 6));

    uploadTbls.addMouseListener(new MouseListener() {
        public void mouseClicked(MouseEvent me) {
            if (me.getClickCount() == 2) {
                uploadTblDblClick();
            }
            uploadTblClick();
        }

        public void mouseEntered(MouseEvent me) {
            // no comment.
        }

        public void mouseExited(MouseEvent me) {
            // no comment.
        }

        public void mousePressed(MouseEvent me) {
            // no comment.
        }

        public void mouseReleased(MouseEvent me) {
            // no comment.
        }
    });

    msgList.addMouseListener(new MouseListener() {
        public void mouseClicked(MouseEvent me) {
            msgClick(false);
        }

        public void mouseEntered(MouseEvent me) {
            // no comment.
        }

        public void mouseExited(MouseEvent me) {
            // no comment.
        }

        public void mousePressed(MouseEvent me) {
            // no comment.
        }

        public void mouseReleased(MouseEvent me) {
            // no comment.
        }
    });

    validationErrorList.addMouseListener(new MouseListener() {
        public void mouseClicked(MouseEvent me) {
            msgClick(true);
        }

        public void mouseEntered(MouseEvent me) {
            // no comment.
        }

        public void mouseExited(MouseEvent me) {
            // no comment.
        }

        public void mousePressed(MouseEvent me) {
            // no comment.
        }

        public void mouseReleased(MouseEvent me) {
            // no comment.
        }
    });
}

From source file:edu.ku.brc.specify.tasks.subpane.wb.WorkbenchPaneSS.java

License:Open Source License

/**
 * Constructs the pane for the spreadsheet.
 * /*from  ww w  . j a  v  a2  s .  c o  m*/
 * @param name the name of the pane
 * @param task the owning task
 * @param workbench the workbench to be edited
 * @param showImageView shows image window when first showing the window
 */
public WorkbenchPaneSS(final String name, final Taskable task, final Workbench workbenchArg,
        final boolean showImageView, final boolean isReadOnly) throws Exception {
    super(name, task);

    removeAll();

    if (workbenchArg == null) {
        return;
    }
    this.workbench = workbenchArg;

    this.isReadOnly = isReadOnly;

    headers.addAll(workbench.getWorkbenchTemplate().getWorkbenchTemplateMappingItems());
    Collections.sort(headers);

    boolean hasOneOrMoreImages = false;
    // pre load all the data
    for (WorkbenchRow wbRow : workbench.getWorkbenchRows()) {
        for (WorkbenchDataItem wbdi : wbRow.getWorkbenchDataItems()) {
            wbdi.getCellData();
        }

        if (wbRow.getWorkbenchRowImages() != null && wbRow.getWorkbenchRowImages().size() > 0) {
            hasOneOrMoreImages = true;
        }
    }

    model = new GridTableModel(this);
    spreadSheet = new WorkbenchSpreadSheet(model, this);
    spreadSheet.setReadOnly(isReadOnly);
    model.setSpreadSheet(spreadSheet);

    Highlighter simpleStriping = HighlighterFactory.createSimpleStriping();
    GridCellHighlighter hl = new GridCellHighlighter(
            new GridCellPredicate(GridCellPredicate.AnyPredicate, null));
    Short[] errs = { WorkbenchDataItem.VAL_ERROR, WorkbenchDataItem.VAL_ERROR_EDIT };
    ColorHighlighter errColorHighlighter = new ColorHighlighter(
            new GridCellPredicate(GridCellPredicate.ValidationPredicate, errs),
            CellRenderingAttributes.errorBackground, null);
    Short[] newdata = { WorkbenchDataItem.VAL_NEW_DATA };
    ColorHighlighter noDataHighlighter = new ColorHighlighter(
            new GridCellPredicate(GridCellPredicate.MatchingPredicate, newdata),
            CellRenderingAttributes.newDataBackground, null);
    Short[] multimatch = { WorkbenchDataItem.VAL_MULTIPLE_MATCH };
    ColorHighlighter multiMatchHighlighter = new ColorHighlighter(
            new GridCellPredicate(GridCellPredicate.MatchingPredicate, multimatch),
            CellRenderingAttributes.multipleMatchBackground, null);

    spreadSheet.setHighlighters(simpleStriping, hl, errColorHighlighter, noDataHighlighter,
            multiMatchHighlighter);

    //add key mappings for cut, copy, paste
    //XXX Note: these are shortcuts directly to the SpreadSheet cut,copy,paste methods, NOT to the Specify edit menu.
    addRecordKeyMappings(spreadSheet, KeyEvent.VK_C, "Copy", new AbstractAction() {
        public void actionPerformed(ActionEvent ae) {
            SwingUtilities.invokeLater(new Runnable() {

                /* (non-Javadoc)
                 * @see java.lang.Runnable#run()
                 */
                @Override
                public void run() {
                    spreadSheet.cutOrCopy(false);
                }
            });
        }
    }, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask());
    addRecordKeyMappings(spreadSheet, KeyEvent.VK_X, "Cut", new AbstractAction() {
        public void actionPerformed(ActionEvent ae) {
            SwingUtilities.invokeLater(new Runnable() {

                /* (non-Javadoc)
                 * @see java.lang.Runnable#run()
                 */
                @Override
                public void run() {
                    spreadSheet.cutOrCopy(true);
                }
            });
        }
    }, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask());
    addRecordKeyMappings(spreadSheet, KeyEvent.VK_V, "Paste", new AbstractAction() {
        public void actionPerformed(ActionEvent ae) {
            SwingUtilities.invokeLater(new Runnable() {

                /* (non-Javadoc)
                 * @see java.lang.Runnable#run()
                 */
                @Override
                public void run() {
                    spreadSheet.paste();
                }
            });
        }
    }, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask());

    findPanel = spreadSheet.getFindReplacePanel();
    UIRegistry.getLaunchFindReplaceAction().setSearchReplacePanel(findPanel);

    spreadSheet.setShowGrid(true);
    JTableHeader header = spreadSheet.getTableHeader();
    header.addMouseListener(new ColumnHeaderListener());
    header.setReorderingAllowed(false); // Turn Off column dragging

    // Put the model in image mode, and never change it.
    // Now we're showing/hiding the image column using JXTable's column hiding features.
    model.setInImageMode(true);
    int imageColIndex = model.getColumnCount() - 1;
    imageColExt = spreadSheet.getColumnExt(imageColIndex);
    imageColExt.setVisible(false);

    int sgrColIndex = model.getSgrHeading().getViewOrder();
    sgrColExt = spreadSheet.getColumnExt(sgrColIndex);
    sgrColExt.setComparator(((WorkbenchSpreadSheet) spreadSheet).new NumericColumnComparator());

    int cmpIdx = 0;
    for (Comparator<String> cmp : ((WorkbenchSpreadSheet) spreadSheet).getComparators()) {
        if (cmp != null) {
            spreadSheet.getColumnExt(cmpIdx++).setComparator(cmp);
        }
    }

    // Start off with the SGR score column hidden
    showHideSgrCol(false);

    model.addTableModelListener(new TableModelListener() {
        public void tableChanged(TableModelEvent e) {
            setChanged(true);
        }
    });

    spreadSheet.addFocusListener(new FocusAdapter() {
        @Override
        public void focusGained(FocusEvent e) {
            UIRegistry.enableCutCopyPaste(true);
            UIRegistry.enableFind(findPanel, true);
        }

        @Override
        public void focusLost(FocusEvent e) {
            UIRegistry.enableCutCopyPaste(true);
            UIRegistry.enableFind(findPanel, true);
        }
    });

    if (isReadOnly) {
        saveBtn = null;
    } else {
        saveBtn = createButton(getResourceString("SAVE"));
        saveBtn.setToolTipText(
                String.format(getResourceString("WB_SAVE_DATASET_TT"), new Object[] { workbench.getName() }));
        saveBtn.setEnabled(false);
        saveBtn.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent ae) {
                UsageTracker.incrUsageCount("WB.SaveDataSet");

                UIRegistry.writeSimpleGlassPaneMsg(
                        String.format(getResourceString("WB_SAVING"), new Object[] { workbench.getName() }),
                        WorkbenchTask.GLASSPANE_FONT_SIZE);
                UIRegistry.getStatusBar().setIndeterminate(workbench.getName(), true);
                final SwingWorker worker = new SwingWorker() {
                    @SuppressWarnings("synthetic-access")
                    @Override
                    public Object construct() {
                        try {
                            saveObject();

                        } catch (Exception ex) {
                            UsageTracker.incrHandledUsageCount();
                            edu.ku.brc.exceptions.ExceptionTracker.getInstance().capture(WorkbenchPaneSS.class,
                                    ex);
                            log.error(ex);
                            return ex;
                        }
                        return null;
                    }

                    // Runs on the event-dispatching thread.
                    @Override
                    public void finished() {
                        Object retVal = get();
                        if (retVal != null && retVal instanceof Exception) {
                            Exception ex = (Exception) retVal;
                            UIRegistry.getStatusBar().setErrorMessage(getResourceString("WB_ERROR_SAVING"), ex);
                        }

                        UIRegistry.clearSimpleGlassPaneMsg();
                        UIRegistry.getStatusBar().setProgressDone(workbench.getName());
                    }
                };
                worker.start();

            }
        });
    }

    Action delAction = addRecordKeyMappings(spreadSheet, KeyEvent.VK_F3, "DelRow", new AbstractAction() {
        public void actionPerformed(ActionEvent ae) {
            if (validationWorkerQueue.peek() == null) {
                deleteRows();
            }
        }
    }, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask());

    if (isReadOnly) {
        deleteRowsBtn = null;
    } else {
        deleteRowsBtn = createIconBtn("DelRec", "WB_DELETE_ROW", delAction);
        selectionSensitiveButtons.add(deleteRowsBtn);
        spreadSheet.setDeleteAction(delAction);
    }

    //XXX Using the wb ID in the prefname to do pref setting per wb, may result in a bloated prefs file?? 
    doIncrementalValidation = AppPreferences.getLocalPrefs()
            .getBoolean(wbAutoValidatePrefName + "." + workbench.getId(), true);
    doIncrementalMatching = AppPreferences.getLocalPrefs()
            .getBoolean(wbAutoMatchPrefName + "." + workbench.getId(), false);

    if (isReadOnly) {
        clearCellsBtn = null;
    } else {
        clearCellsBtn = createIconBtn("Eraser", "WB_CLEAR_CELLS", new ActionListener() {
            public void actionPerformed(ActionEvent ae) {
                spreadSheet.clearSorter();

                if (spreadSheet.getCellEditor() != null) {
                    spreadSheet.getCellEditor().stopCellEditing();
                }
                int[] rows = spreadSheet.getSelectedRowModelIndexes();
                int[] cols = spreadSheet.getSelectedColumnModelIndexes();
                model.clearCells(rows, cols);
            }
        });
        selectionSensitiveButtons.add(clearCellsBtn);
    }

    Action addAction = addRecordKeyMappings(spreadSheet, KeyEvent.VK_N, "AddRow", new AbstractAction() {
        public void actionPerformed(ActionEvent ae) {
            if (workbench.getWorkbenchRows().size() < WorkbenchTask.MAX_ROWS) {
                if (validationWorkerQueue.peek() == null) {
                    addRowAfter();
                }
            }
        }
    }, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask());

    if (isReadOnly) {
        addRowsBtn = null;
    } else {
        addRowsBtn = createIconBtn("AddRec", "WB_ADD_ROW", addAction);
        addRowsBtn.setEnabled(true);
        addAction.setEnabled(true);
    }

    if (isReadOnly) {
        carryForwardBtn = null;
    } else {
        carryForwardBtn = createIconBtn("CarryForward20x20", IconManager.IconSize.NonStd, "WB_CARRYFORWARD",
                false, new ActionListener() {
                    public void actionPerformed(ActionEvent ae) {
                        UsageTracker.getUsageCount("WBCarryForward");

                        configCarryFoward();
                    }
                });
        carryForwardBtn.setEnabled(true);
    }

    toggleImageFrameBtn = createIconBtn("CardImage", IconManager.IconSize.NonStd, "WB_SHOW_IMG_WIN", false,
            new ActionListener() {
                public void actionPerformed(ActionEvent ae) {
                    toggleImageFrameVisible();
                }
            });
    toggleImageFrameBtn.setEnabled(true);

    importImagesBtn = createIconBtn("CardImage", IconManager.IconSize.NonStd, "WB_SHOW_IMG_WIN", false,
            new ActionListener() {
                public void actionPerformed(ActionEvent ae) {
                    toggleImportImageFrameVisible();
                }
            });
    importImagesBtn.setEnabled(true);

    /*showMapBtn = createIconBtn("ShowMap", IconManager.IconSize.NonStd, "WB_SHOW_MAP", false, new ActionListener()
    {
    public void actionPerformed(ActionEvent ae)
    {
        showMapOfSelectedRecords();
    }
    });*/
    // enable or disable along with Google Earth and Geo Ref Convert buttons

    if (isReadOnly) {
        exportKmlBtn = null;
    } else {
        exportKmlBtn = createIconBtn("GoogleEarth", IconManager.IconSize.NonStd, "WB_SHOW_IN_GOOGLE_EARTH",
                false, new ActionListener() {
                    public void actionPerformed(ActionEvent ae) {
                        SwingUtilities.invokeLater(new Runnable() {
                            public void run() {
                                showRecordsInGoogleEarth();
                            }
                        });
                    }
                });
    }

    // 

    readRegisteries();

    // enable or disable along with Show Map and Geo Ref Convert buttons

    if (isReadOnly) {
        geoRefToolBtn = null;
    } else {
        AppPreferences remotePrefs = AppPreferences.getRemote();
        final String tool = remotePrefs.get("georef_tool", "geolocate");
        String iconName = "GEOLocate20"; //tool.equalsIgnoreCase("geolocate") ? "GeoLocate" : "BioGeoMancer";
        String toolTip = tool.equalsIgnoreCase("geolocate") ? "WB_DO_GEOLOCATE_LOOKUP"
                : "WB_DO_BIOGEOMANCER_LOOKUP";
        geoRefToolBtn = createIconBtn(iconName, IconManager.IconSize.NonStd, toolTip, false,
                new ActionListener() {
                    public void actionPerformed(ActionEvent ae) {
                        spreadSheet.clearSorter();

                        if (tool.equalsIgnoreCase("geolocate")) {
                            doGeoRef(new edu.ku.brc.services.geolocate.prototype.GeoCoordGeoLocateProvider(),
                                    "WB.GeoLocateRows");
                        } else {
                            doGeoRef(new GeoCoordBGMProvider(), "WB.BioGeomancerRows");
                        }
                    }
                });
        // only enable it if the workbench has the proper columns in it
        String[] missingColumnsForBG = getMissingButRequiredColumnsForGeoRefTool(tool);
        if (missingColumnsForBG.length > 0) {
            geoRefToolBtn.setEnabled(false);
            String ttText = "<p>" + getResourceString("WB_ADDITIONAL_FIELDS_REQD") + ":<ul>";
            for (String reqdField : missingColumnsForBG) {
                ttText += "<li>" + reqdField + "</li>";
            }
            ttText += "</ul>";
            String origTT = geoRefToolBtn.getToolTipText();
            geoRefToolBtn.setToolTipText("<html>" + origTT + ttText);
        } else {
            geoRefToolBtn.setEnabled(true);
        }
    }

    if (isReadOnly) {
        convertGeoRefFormatBtn = null;
    } else {
        convertGeoRefFormatBtn = createIconBtn("ConvertGeoRef", IconManager.IconSize.NonStd,
                "WB_CONVERT_GEO_FORMAT", false, new ActionListener() {
                    public void actionPerformed(ActionEvent ae) {
                        showGeoRefConvertDialog();
                    }
                });

        // now enable/disable the geo ref related buttons
        String[] missingGeoRefFields = getMissingGeoRefLatLonFields();
        if (missingGeoRefFields.length > 0) {
            convertGeoRefFormatBtn.setEnabled(false);
            exportKmlBtn.setEnabled(false);
            //showMapBtn.setEnabled(false);

            String ttText = "<p>" + getResourceString("WB_ADDITIONAL_FIELDS_REQD") + ":<ul>";
            for (String reqdField : missingGeoRefFields) {
                ttText += "<li>" + reqdField + "</li>";
            }
            ttText += "</ul>";
            String origTT1 = convertGeoRefFormatBtn.getToolTipText();
            convertGeoRefFormatBtn.setToolTipText("<html>" + origTT1 + ttText);
            String origTT2 = exportKmlBtn.getToolTipText();
            exportKmlBtn.setToolTipText("<html>" + origTT2 + ttText);
            //String origTT3 = showMapBtn.getToolTipText();
            //showMapBtn.setToolTipText("<html>" + origTT3 + ttText);
        } else {
            convertGeoRefFormatBtn.setEnabled(true);
            exportKmlBtn.setEnabled(true);
            //showMapBtn.setEnabled(true);
        }
    }

    if (AppContextMgr.isSecurityOn() && !task.getPermissions().canModify()) {
        exportExcelCsvBtn = null;
    } else {
        exportExcelCsvBtn = createIconBtn("Export", IconManager.IconSize.NonStd, "WB_EXPORT_DATA", false,
                new ActionListener() {
                    public void actionPerformed(ActionEvent ae) {
                        doExcelCsvExport();
                    }
                });
        exportExcelCsvBtn.setEnabled(true);
    }

    uploadDatasetBtn = createIconBtn("Upload", IconManager.IconSize.Std24, "WB_UPLOAD_DATA", false,
            new ActionListener() {
                public void actionPerformed(ActionEvent ae) {
                    doDatasetUpload();
                }
            });
    uploadDatasetBtn.setVisible(isUploadPermitted() && !UIRegistry.isMobile());
    uploadDatasetBtn.setEnabled(canUpload());
    if (!uploadDatasetBtn.isEnabled()) {
        uploadDatasetBtn.setToolTipText(getResourceString("WB_UPLOAD_IN_PROGRESS"));
    }

    // listen to selection changes to enable/disable certain buttons
    spreadSheet.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
        public void valueChanged(ListSelectionEvent e) {
            if (!e.getValueIsAdjusting()) {
                JStatusBar statusBar = UIRegistry.getStatusBar();
                statusBar.setText("");

                currentRow = spreadSheet.getSelectedRow();
                updateBtnUI();
            }
        }
    });

    for (int c = 0; c < spreadSheet.getTableHeader().getColumnModel().getColumnCount(); c++) {
        // TableColumn column =
        // spreadSheet.getTableHeader().getColumnModel().getColumn(spreadSheet.getTableHeader().getColumnModel().getColumnCount()-1);
        TableColumn column = spreadSheet.getTableHeader().getColumnModel().getColumn(c);
        column.setCellRenderer(new WbCellRenderer());
    }

    // setup the JFrame to show images attached to WorkbenchRows
    imageFrame = new ImageFrame(mapSize, this, this.workbench, task, isReadOnly);

    // setup the JFrame to show images attached to WorkbenchRows
    imageImportFrame = new ImageImportFrame(this, this.workbench);

    setupWorkbenchRowChangeListener();

    // setup window minimizing/maximizing listener
    JFrame topFrame = (JFrame) UIRegistry.getTopWindow();
    minMaxWindowListener = new WindowAdapter() {
        @Override
        public void windowDeiconified(WindowEvent e) {
            if (imageFrame != null && imageFrame.isVisible()) {
                imageFrame.setExtendedState(Frame.NORMAL);
            }
            if (mapFrame != null && mapFrame.isVisible()) {
                mapFrame.setExtendedState(Frame.NORMAL);
            }
        }

        @Override
        public void windowIconified(WindowEvent e) {
            if (imageFrame != null && imageFrame.isVisible()) {
                imageFrame.setExtendedState(Frame.ICONIFIED);
            }
            if (mapFrame != null && mapFrame.isVisible()) {
                mapFrame.setExtendedState(Frame.ICONIFIED);
            }
        }
    };
    topFrame.addWindowListener(minMaxWindowListener);

    if (!isReadOnly) {
        showHideUploadToolBtn = createIconBtn("ValidateWB", IconManager.IconSize.NonStd,
                "WB_HIDE_UPLOADTOOLPANEL", false, new ActionListener() {
                    public void actionPerformed(ActionEvent ae) {
                        if (uploadToolPanel.isExpanded()) {
                            hideUploadToolPanel();
                            showHideUploadToolBtn.setToolTipText(getResourceString("WB_SHOW_UPLOADTOOLPANEL"));
                        } else {
                            showUploadToolPanel();
                            showHideUploadToolBtn.setToolTipText(getResourceString("WB_HIDE_UPLOADTOOLPANEL"));
                        }
                    }
                });
        showHideUploadToolBtn.setEnabled(true);
    }

    // setup the mapping features
    mapFrame = new JFrame();
    mapFrame.setIconImage(IconManager.getImage("AppIcon").getImage());
    mapFrame.setTitle(getResourceString("WB_GEO_REF_DATA_MAP"));
    mapImageLabel = createLabel("");
    mapImageLabel.setSize(500, 500);
    mapFrame.add(mapImageLabel);
    mapFrame.setSize(500, 500);

    // start putting together the visible UI
    CellConstraints cc = new CellConstraints();

    JComponent[] compsArray = { addRowsBtn, deleteRowsBtn, clearCellsBtn, /*showMapBtn,*/ exportKmlBtn,
            geoRefToolBtn, convertGeoRefFormatBtn, exportExcelCsvBtn, uploadDatasetBtn, showHideUploadToolBtn };
    Vector<JComponent> availableComps = new Vector<JComponent>(
            compsArray.length + workBenchPluginSSBtns.size());
    for (JComponent c : compsArray) {
        if (c != null) {
            availableComps.add(c);
        }
    }
    for (JComponent c : workBenchPluginSSBtns) {
        availableComps.add(c);
    }

    PanelBuilder spreadSheetControlBar = new PanelBuilder(new FormLayout(
            "f:p:g,4px," + createDuplicateJGoodiesDef("p", "4px", availableComps.size()) + ",4px,", "c:p:g"));

    int x = 3;
    for (JComponent c : availableComps) {
        spreadSheetControlBar.add(c, cc.xy(x, 1));
        x += 2;
    }

    int h = 0;
    Vector<WorkbenchTemplateMappingItem> headers = new Vector<WorkbenchTemplateMappingItem>();
    headers.addAll(workbench.getWorkbenchTemplate().getWorkbenchTemplateMappingItems());
    Collections.sort(headers);
    for (WorkbenchTemplateMappingItem mi : headers) {
        //using the workbench data model table. Not the actual specify table the column is mapped to.
        //This MIGHT be less confusing
        //System.out.println("setting header renderer for " + mi.getTableName() + "." + mi.getFieldName()); 
        spreadSheet.getColumnModel().getColumn(h++)
                .setHeaderRenderer(new WbTableHeaderRenderer(mi.getTableName()));
    }

    // NOTE: This needs to be done after the creation of the saveBtn. And after the creation of the header renderes.
    initColumnSizes(spreadSheet, saveBtn);

    // Create the Form Pane  -- needs to be done after initColumnSizes - which also sets cell editors for collumns
    if (task instanceof SGRTask) {
        formPane = new SGRFormPane(this, workbench, isReadOnly);
    } else {
        formPane = new FormPane(this, workbench, isReadOnly);
    }

    // This panel contains just the ResultSetContoller, it's needed so the RSC gets centered
    PanelBuilder rsPanel = new PanelBuilder(new FormLayout("c:p:g", "c:p:g"));
    FormValidator dummy = new FormValidator(null);
    dummy.setEnabled(true);
    resultsetController = new ResultSetController(dummy, !isReadOnly, !isReadOnly, false,
            getResourceString("Record"), model.getRowCount(), true);
    resultsetController.addListener(formPane);
    if (!isReadOnly) {
        resultsetController.getDelRecBtn().addActionListener(delAction);
    }
    //        else
    //        {
    //            resultsetController.getDelRecBtn().setVisible(false);
    //        }
    rsPanel.add(resultsetController.getPanel(), cc.xy(1, 1));

    // This panel is a single row containing the ResultSetContoller and the other controls for the Form Panel
    String colspec = "f:p:g, p, f:p:g, p";
    for (int i = 0; i < workBenchPluginFormBtns.size(); i++) {
        colspec = colspec + ", f:p, p";
    }

    PanelBuilder resultSetPanel = new PanelBuilder(new FormLayout(colspec, "c:p:g"));
    // Now put the two panel into the single row panel
    resultSetPanel.add(rsPanel.getPanel(), cc.xy(2, 1));
    if (!isReadOnly) {
        resultSetPanel.add(formPane.getControlPropsBtn(), cc.xy(4, 1));
    }
    int ccx = 6;
    for (JComponent c : workBenchPluginFormBtns) {
        resultSetPanel.add(c, cc.xy(ccx, 1));
        ccx += 2;
    }

    // Create the main panel that uses card layout for the form and spreasheet
    mainPanel = new JPanel(cardLayout = new CardLayout());

    // Add the Form and Spreadsheet to the CardLayout
    mainPanel.add(spreadSheet.getScrollPane(), PanelType.Spreadsheet.toString());
    mainPanel.add(formPane.getPane(), PanelType.Form.toString());

    // The controllerPane is a CardLayout that switches between the Spreadsheet control bar and the Form Control Bar
    controllerPane = new JPanel(cpCardLayout = new CardLayout());
    controllerPane.add(spreadSheetControlBar.getPanel(), PanelType.Spreadsheet.toString());
    controllerPane.add(resultSetPanel.getPanel(), PanelType.Form.toString());

    JLabel sep1 = new JLabel(IconManager.getIcon("Separator"));
    JLabel sep2 = new JLabel(IconManager.getIcon("Separator"));
    ssFormSwitcher = createSwitcher();

    // This works
    setLayout(new BorderLayout());

    boolean doDnDImages = AppPreferences.getLocalPrefs().getBoolean("WB_DND_IMAGES", false);
    JComponent[] ctrlCompArray1 = { importImagesBtn, toggleImageFrameBtn, carryForwardBtn, sep1, saveBtn, sep2,
            ssFormSwitcher };
    JComponent[] ctrlCompArray2 = { toggleImageFrameBtn, carryForwardBtn, sep1, saveBtn, sep2, ssFormSwitcher };
    JComponent[] ctrlCompArray = doDnDImages ? ctrlCompArray1 : ctrlCompArray2;

    Vector<Pair<JComponent, Integer>> ctrlComps = new Vector<Pair<JComponent, Integer>>();
    for (JComponent c : ctrlCompArray) {
        ctrlComps.add(new Pair<JComponent, Integer>(c, null));
    }

    String layoutStr = "";
    int compCount = 0;
    int col = 1;
    int pos = 0;
    for (Pair<JComponent, Integer> c : ctrlComps) {
        JComponent comp = c.getFirst();
        if (comp != null) {
            boolean addComp = !(comp == sep1 || comp == sep2) || compCount > 0;
            if (!addComp) {
                c.setFirst(null);
            } else {
                if (!StringUtils.isEmpty(layoutStr)) {
                    layoutStr += ",";
                    col++;
                    if (pos < ctrlComps.size() - 1) {
                        //this works because we know ssFormSwitcher is last and always non-null.
                        layoutStr += "6px,";
                        col++;
                    }
                }
                c.setSecond(col);
                if (comp == sep1 || comp == sep2) {
                    layoutStr += "6px";
                    compCount = 0;
                } else {
                    layoutStr += "p";
                    compCount++;
                }
            }
        }
        pos++;
    }
    PanelBuilder ctrlBtns = new PanelBuilder(new FormLayout(layoutStr, "c:p:g"));
    for (Pair<JComponent, Integer> c : ctrlComps) {
        if (c.getFirst() != null) {
            ctrlBtns.add(c.getFirst(), cc.xy(c.getSecond(), 1));
        }
    }

    add(mainPanel, BorderLayout.CENTER);

    FormLayout formLayout = new FormLayout("f:p:g,4px,p", "2px,f:p:g,p:g,p:g");
    PanelBuilder builder = new PanelBuilder(formLayout);

    builder.add(controllerPane, cc.xy(1, 2));
    builder.add(ctrlBtns.getPanel(), cc.xy(3, 2));

    if (!isReadOnly) {
        uploadToolPanel = new UploadToolPanel(this, UploadToolPanel.EXPANDED);
        uploadToolPanel.createUI();
        //            showHideUploadToolBtn = createIconBtn("ValidateWB", IconManager.IconSize.NonStd, "WB_HIDE_UPLOADTOOLPANEL", false, new ActionListener()
        //            {
        //                public void actionPerformed(ActionEvent ae)
        //                {
        //                    if (uploadToolPanel.isExpanded())
        //                    {
        //                       hideUploadToolPanel();
        //                       showHideUploadToolBtn.setToolTipText(getResourceString("WB_SHOW_UPLOADTOOLPANEL"));
        //                    } else
        //                    {
        //                       showUploadToolPanel();
        //                       showHideUploadToolBtn.setToolTipText(getResourceString("WB_HIDE_UPLOADTOOLPANEL"));
        //                   }
        //                }
        //            });
        //            showHideUploadToolBtn.setEnabled(true);
    }

    builder.add(uploadToolPanel, cc.xywh(1, 3, 3, 1));
    builder.add(findPanel, cc.xywh(1, 4, 3, 1));

    add(builder.getPanel(), BorderLayout.SOUTH);

    resultsetController.addListener(new ResultSetControllerListener() {
        public boolean indexAboutToChange(int oldIndex, int newIndex) {
            return true;
        }

        public void indexChanged(int newIndex) {
            if (imageFrame != null) {
                if (newIndex > -1) {
                    int index = spreadSheet.convertRowIndexToModel(newIndex);
                    imageFrame.setRow(workbench.getRow(index));
                } else {
                    imageFrame.setRow(null);
                }
            }
        }

        public void newRecordAdded() {
            // do nothing
        }
    });
    //compareSchemas();
    if (getIncremental() && workbenchValidator == null) {
        buildValidator();
    }

    //        int c = 0;
    //        Vector<WorkbenchTemplateMappingItem> headers = new Vector<WorkbenchTemplateMappingItem>();
    //        headers.addAll(workbench.getWorkbenchTemplate().getWorkbenchTemplateMappingItems());
    //        Collections.sort(headers);
    //        for (WorkbenchTemplateMappingItem mi : headers)
    //        {
    //           //using the workbench data model table. Not the actual specify table the column is mapped to.
    //           //This MIGHT be less confusing
    //           //System.out.println("setting header renderer for " + mi.getTableName() + "." + mi.getFieldName()); 
    //           spreadSheet.getColumnModel().getColumn(c++).setHeaderRenderer(new WbTableHeaderRenderer(mi.getTableName()));
    //        }
    //        
    //        // NOTE: This needs to be done after the creation of the saveBtn. And after the creation of the header renderes.
    //        initColumnSizes(spreadSheet, saveBtn);

    // See if we need to make the Image Frame visible
    // Commenting this out for now because it is so annoying.

    if (showImageView || hasOneOrMoreImages) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                toggleImageFrameVisible();

                SwingUtilities.invokeLater(new Runnable() {
                    public void run() {
                        final Frame f = (Frame) UIRegistry.get(UIRegistry.FRAME);
                        f.toFront();
                        f.requestFocus();
                    }
                });
            }
        });
    }

    ((WorkbenchTask) ContextMgr.getTaskByClass(WorkbenchTask.class)).opening(this);
    ((SGRTask) ContextMgr.getTaskByClass(SGRTask.class)).opening(this);
}

From source file:edu.ku.brc.specify.tools.schemalocale.DisciplineBasedPanel.java

License:Open Source License

/**
 * /*from w  ww  .  j a  va2s.  com*/
 */
protected void createUI() {
    CellConstraints cc = new CellConstraints();

    addBtn = UIHelper.createIconBtn("DownArrow", "", new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            addItem();
        }

    });

    delBtn = UIHelper.createIconBtn("UpArrow", "", new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            delItem();
        }

    });

    fieldPanel = new FieldItemPanel(schemaPanel, webLinkMgrCache, true, true, true, null);
    fieldPanel.setLocalizableIO(this);
    fieldPanel.setStatusBar(schemaPanel.getStatusBar());

    PanelBuilder arrowPanel = new PanelBuilder(new FormLayout("f:p:g, p, 2px, p, f:p:g", "p"));
    arrowPanel.add(addBtn, cc.xy(2, 1));
    arrowPanel.add(delBtn, cc.xy(4, 1));

    PanelBuilder pb = new PanelBuilder(new FormLayout("p, 2px, f:p:g", "p,2px,p,2px,p,2px,p"), this);
    pb.add(arrowPanel.getPanel(), cc.xy(1, 1));
    pb.addSeparator("Disciplines", cc.xywh(1, 3, 3, 1));
    pb.add(disciplineCBX, cc.xy(1, 5));
    pb.add(fieldPanel, cc.xywh(1, 7, 3, 1));

}

From source file:edu.ku.brc.specify.tools.schemalocale.FieldItemPanel.java

License:Open Source License

/**
 * //  ww w . j  a  v a  2  s .  c  o  m
 */
public void buildUI() {
    setIgnoreChanges(true);

    fieldsList = createList(fieldsModel);

    fieldsList.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
        public void valueChanged(ListSelectionEvent e) {
            if (!e.getValueIsAdjusting()) {
                getAllDataFromUI();
                fieldSelected();
            }
        }
    });

    fieldsList.addFocusListener(new FocusAdapter() {
        @Override
        public void focusLost(FocusEvent e) {
            super.focusLost(e);
            //lastIndex = fieldsList.getSelectedIndex();
        }
    });

    fieldDescText.addKeyListener(new LengthWatcher(255));
    // setting min and pref sizes to some bogus values so that textarea shrinks with dialog
    fieldNameText.addKeyListener(new LengthWatcher(64));

    CellConstraints cc = new CellConstraints();

    int y = 1;

    JScrollPane fldsp = UIHelper.createScrollPane(fieldsList);

    // LocalizableNameDescIFace
    PanelBuilder pb = new PanelBuilder(new FormLayout("max(200px;p),4px,p,2px,p,10px,p,2px,p,f:p:g",
            (includeHiddenUI ? "p,2px," : "") + (isDBSchema ? "p,2px,p,2px," : "")
                    + (includeFormatAndAutoNumUI ? "p,2px,p,2px," : "")
                    + "p,2px,p,2px,p,2px,p,2px,p,2px,p,2px,f:p:g"),
            this);

    pb.add(fldsp, cc.xywh(1, y, 1, 7 + (isDBSchema ? 4 : 0)));
    pb.add(fieldNameLbl = createI18NFormLabel("SL_LABEL", SwingConstants.RIGHT), cc.xy(3, y));
    pb.add(fieldNameText, cc.xywh(5, y, 6, 1));
    y += 2;

    if (includeHiddenUI) {
        pb.add(fieldHideChk, cc.xy(5, y));
        y += 2;
    }

    pb.add(fieldDescLbl = createI18NFormLabel("SL_DESC", SwingConstants.RIGHT), cc.xy(3, y));
    JScrollPane sp = new JScrollPane(fieldDescText, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
            ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    pb.add(sp, cc.xywh(5, y, 6, 1));
    y += 2;
    fieldDescText.setLineWrap(true);
    fieldDescText.setWrapStyleWord(true);

    if (isDBSchema) {
        fieldTypeTxt = createLabel("");
        fieldLengthTxt = createLabel("");

        pb.add(fieldTypeLbl = createI18NFormLabel("SL_TYPE", SwingConstants.RIGHT), cc.xy(3, y));
        pb.add(fieldTypeTxt, cc.xy(5, y));

        pb.add(fieldReqChk = createCheckBox(getResourceString("SL_REQ")), cc.xy(9, y));
        y += 2;

        pb.add(fieldLengthLbl = createI18NFormLabel("SL_LENGTH", SwingConstants.RIGHT), cc.xy(3, y));
        pb.add(fieldLengthTxt, cc.xy(5, y));
        y += 2;

        fieldTypeTxt.setBackground(Color.WHITE);
        fieldLengthTxt.setBackground(Color.WHITE);
        fieldTypeTxt.setOpaque(true);
        fieldLengthTxt.setOpaque(true);
    }

    if (includeFormatAndAutoNumUI) {
        PanelBuilder inner = new PanelBuilder(new FormLayout("p,2px,p", "p"));

        formatSwitcherCombo = createComboBox();
        fmtCardLayout = new CardLayout();
        formatterPanel = new JPanel(fmtCardLayout);
        pb.add(formatLbl = createI18NFormLabel("SL_FMTTYPE", SwingConstants.RIGHT), cc.xy(3, y));

        inner.add(formatSwitcherCombo, cc.xy(1, 1));
        inner.add(formatterPanel, cc.xy(3, 1));

        pb.add(inner.getPanel(), cc.xywh(5, y, 6, 1));
        y += 2;

        ActionListener switchAL = new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                String item = (String) formatSwitcherCombo.getSelectedItem();
                if (item != null) {
                    fmtCardLayout.show(formatterPanel, item);
                    webLinkCombo.setEnabled(item.equals(SL_WEBLINK));

                    if (formatSwitcherCombo.getSelectedIndex() == 0) {
                        if (webLinkCombo.getModel().getSize() > 0) {
                            webLinkCombo.setSelectedIndex(0);
                        }
                        if (formatCombo.getModel().getSize() > 0) {
                            formatCombo.setSelectedIndex(0);
                        }
                        if (pickListCBX.getModel().getSize() > 0) {
                            pickListCBX.setSelectedIndex(0);
                        }
                    }
                }
            }
        };
        formatSwitcherCombo.addActionListener(switchAL);

        formatterPanel.add(SL_NONE, new JPanel());

        //--------------------------
        // UIFieldFormatter
        //--------------------------
        inner = new PanelBuilder(new FormLayout("max(p;150px),2px,min", "p"));

        formatCombo = createComboBox(new DefaultComboBoxModel());
        formatMoreBtn = createButton(ELIPSES);

        inner.add(formatCombo, cc.xy(1, 1));
        inner.add(formatMoreBtn, cc.xy(3, 1));

        formatMoreBtn.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                UIFormatterListEdtDlg dlg = new UIFormatterListEdtDlg((Frame) UIRegistry.getTopWindow(),
                        fieldInfo, true, schemaPanel.getUiFieldFormatterMgrCache());
                dlg.setVisible(true);
                if (!dlg.isCancelled() && dlg.hasChanged()) {
                    //schemaPanel.setHasChanged(true);
                    formHasChanged();

                    //fillFormatBox(dlg.getSelectedFormat());
                    setSelectedFieldFormatter(dlg.getSelectedFormat());
                }
            }
        });

        formatterPanel.add(SL_FORMAT, inner.getPanel());

        ActionListener changed = new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                formHasChanged();

                boolean hasFormat = formatCombo.getSelectedIndex() > 0;
                webLinkCombo.setEnabled(!hasFormat);
                if (hasFormat) {
                    webLinkCombo.setSelectedIndex(webLinkCombo.getModel().getSize() > 0 ? 0 : -1);
                    pickListCBX.setSelectedIndex(pickListCBX.getModel().getSize() > 0 ? 0 : -1);
                }
            }
        };
        formatCombo.addActionListener(changed);

        //--------------------------
        // WebLinks
        //--------------------------
        webLinkMoreBtn = createButton(ELIPSES);
        webLinkMoreBtn.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                WebLinkDef selectedWL = (WebLinkDef) webLinkCombo.getSelectedItem();
                WebLinkConfigDlg dlg = webLinkMgrCache.editWebLinks(tableInfo, false);
                if (dlg.getBtnPressed() == CustomDialog.OK_BTN) {
                    fillWebLinkBox();

                    formHasChanged();

                    if (selectedWL != null && !selectedWL.getName().equals(SL_WEBLINK)) {
                        dlg.setWebLink(selectedWL.getName());
                    }
                    if (dlg.getBtnPressed() == CustomDialog.OK_BTN) {
                        setSelectedWebLink(dlg.getSelectedItem());
                    }
                }
            }
        });

        inner = new PanelBuilder(new FormLayout("max(p;150px),2px,min", "p"));
        webLinkCombo = createComboBox();
        DefaultComboBoxModel model = (DefaultComboBoxModel) webLinkCombo.getModel();
        model.addElement(webLinkDefNone);
        webLinkCombo.setSelectedIndex(0);

        inner.add(webLinkCombo, cc.xy(1, 1));
        inner.add(webLinkMoreBtn, cc.xy(3, 1));

        ActionListener wlchanged = new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                formHasChanged();

                boolean hasWL = webLinkCombo.getSelectedIndex() > 0;
                webLinkCombo.setEnabled(hasWL);
                if (hasWL) {
                    formatCombo.setSelectedIndex(formatCombo.getModel().getSize() > 0 ? 0 : -1);
                    pickListCBX.setSelectedIndex(pickListCBX.getModel().getSize() > 0 ? 0 : -1);
                }
            }
        };
        webLinkCombo.addActionListener(wlchanged);

        formatterPanel.add(SL_WEBLINK, inner.getPanel());
    }

    //--------------------------
    // PickList
    //--------------------------

    pickListCBX = createComboBox(new DefaultComboBoxModel());
    pickListCBX.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            formHasChanged();
            if (formatCombo != null && pickListCBX.getSelectedIndex() > 0) {
                formatCombo.setSelectedIndex(formatCombo.getModel().getSize() > 0 ? 0 : -1);
                webLinkCombo.setSelectedIndex(webLinkCombo.getModel().getSize() > 0 ? 0 : -1);
            }
        }
    });
    pickListMoreBtn = createButton(ELIPSES);
    pickListMoreBtn.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            LocalizableItemIFace currentField = prevField;
            prevField = getSelectedFieldItem();

            PickList selectedItem = (PickList) pickListCBX.getSelectedItem();

            PickListEditorDlg dlg = new PickListEditorDlg(
                    localizableIO.hasUpdatablePickLists() ? null : localizableIO, true, true);
            dlg.setTableInfo(tableInfo);
            dlg.setFieldInfo(fieldInfo);
            dlg.createUI();
            dlg.setSize(400, 500);
            dlg.setVisible(true);
            if (!dlg.isCancelled()) {
                if (dlg.hasChanged()) {
                    hasChanged = true;
                    Vector<PickList> list = dlg.getNewPickLists();
                    DefaultComboBoxModel plCbxModel = (DefaultComboBoxModel) pickListCBX.getModel();
                    for (int i = 0; i < plCbxModel.getSize(); i++) {
                        list.add((PickList) plCbxModel.getElementAt(i));
                    }
                    Collections.sort(list);
                    plCbxModel.removeAllElements();
                    plCbxModel.addElement(pickListNone);
                    int inx = -1;
                    int i = 0;
                    for (PickList pl : list) {
                        plCbxModel.addElement(pl);
                        if (inx == -1 && selectedItem != null
                                && ((selectedItem.getId() != null && pl.getId() != null
                                        && selectedItem.getId().equals(pl.getId()))
                                        || (selectedItem.getName() != null && pl.getName() != null
                                                && selectedItem.getName().equals(pl.getName())))) {
                            inx = i;
                        }
                        i++;
                    }
                    pickListCBX.setSelectedIndex(inx + 1);
                }
            }

            prevField = currentField;
        }
    });

    if (includeFormatAndAutoNumUI) {
        PanelBuilder inner = new PanelBuilder(new FormLayout("max(p;150px),2px,min", "p"));
        inner.add(pickListCBX, cc.xy(1, 1));
        inner.add(pickListMoreBtn, cc.xy(3, 1));

        formatterPanel.add(SL_PICKLIST, inner.getPanel());

    } else {
        pb.add(pickListLbl = createI18NFormLabel(SL_PICKLIST, SwingConstants.RIGHT), cc.xy(3, y));
        pb.add(pickListCBX, cc.xy(5, y));
        pb.add(pickListMoreBtn, cc.xy(7, y));
        y += 2;
    }

    nxtBtn = createI18NButton("SL_NEXT");
    nxtEmptyBtn = createI18NButton("SL_NEXT_EMPTY");
    fldSpellChkBtn = createI18NButton("SL_SPELL_CHECK");

    //JPanel bbp = ButtonBarFactory.buildCenteredBar(adjustButtonArray(new JButton[] {nxtEmptyBtn, nxtBtn, fldSpellChkBtn}));
    //bbp.setBorder(BorderFactory.createEmptyBorder(5, 0, 0, 0));
    //pb.add(bbp,   cc.xywh(3, y, 8, 1));

    nxtBtn.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            next();
        }
    });
    nxtEmptyBtn.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            nextEmpty();
        }
    });

    fldSpellChkBtn.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            if (checker != null) {
                checker.spellCheck(fieldDescText);
                checker.spellCheck(fieldNameText);
            }
        }

    });

    fieldHideChk.addChangeListener(new ChangeListener() {
        public void stateChanged(ChangeEvent e) {
            formHasChanged();
        }

    });

    fieldReqChk.addChangeListener(new ChangeListener() {
        public void stateChanged(ChangeEvent e) {
            formHasChanged();
        }

    });

    DocumentListener dl = new DocumentAdaptor() {
        @Override
        protected void changed(DocumentEvent e) {
            formHasChanged();
        }
    };

    fieldNameText.getDocument().addDocumentListener(dl);
    fieldDescText.getDocument().addDocumentListener(dl);
    /*        
            if (formatTxt != null)
            {
    formatTxt.getDocument().addDocumentListener(dl);
            }
    */
    SchemaI18NService.getInstance().checkCurrentLocaleMenu();

    enableUIControls(false);

    setIgnoreChanges(false);
}

From source file:edu.ku.brc.specify.tools.schemalocale.SchemaLocalizerPanel.java

License:Open Source License

/**
 * /*  www.  j  av a  2  s.c o m*/
 */
public void buildUI() {
    setIgnoreChanges(true);

    tablesList = createList(localizableIO.getContainerDisplayItems());

    tablesList.setVisibleRowCount(14);
    tablesList.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
        public void valueChanged(ListSelectionEvent e) {
            if (!e.getValueIsAdjusting()) {
                startTableSelected();
            }
        }
    });

    CellConstraints cc = new CellConstraints();

    // LocalizableContainerIFace Section Layout
    //tblSpellChkBtn               = createButton(getResourceString("SL_SPELL_CHECK"));
    //JPanel      tpbbp            = ButtonBarFactory.buildCenteredBar(adjustButtonArray(new JButton[] {tblSpellChkBtn}));
    JScrollPane sp = new JScrollPane(tblDescText, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
            ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    //tblDescText.setRows(4);
    tblDescText.setLineWrap(true);
    tblDescText.setWrapStyleWord(true);
    // setting min and pref sizes to some bogus values so that textarea shrinks with dialog
    //tblDescText.setMinimumSize(new Dimension(50, 5));
    //tblDescText.setPreferredSize(new Dimension(50, 5));
    tblDescText.addKeyListener(new LengthWatcher(255));
    tblNameText.addKeyListener(new LengthWatcher(64));

    // data obj formatter control
    dataObjFmtLbl = createI18NFormLabel("DOF_DISPLAY_FORMAT");
    dataObjFmtCbo = createComboBox();
    dataObjFmtBtn = createButton("...");
    fillDataObjFormatterCombo();
    addFormatterActionListener();

    // aggregator controls
    aggregatorLbl = createI18NFormLabel("DOA_AGGREGATION");
    aggregatorCbo = createComboBox();
    aggregatorBtn = createButton("...");
    fillAggregatorCombo();
    addAggregatorActionListener();

    // WebLinks controls
    webLinkLbl = createI18NFormLabel("SL_WEBLINKS");
    webLinkBtn = createButton("...");
    addWebLinkActionListener();

    int y = 1;
    PanelBuilder topInner = new PanelBuilder(
            new FormLayout("p,2px,f:p:g", "p,2px," + (includeHiddenUI ? "p,2px," : "") + "p,2px,p"
                    + (useDisciplines ? ",2px,p" : "") + ",6px,p,2px,p,2px,p" // formatter, aggregator & weblink panel
            ));

    topInner.add(tblDescLbl = createI18NFormLabel("SL_LABEL", SwingConstants.RIGHT), cc.xy(1, y));
    topInner.add(tblNameText, cc.xy(3, y));
    y += 2;

    if (includeHiddenUI) {
        topInner.add(tblHideChk, cc.xy(3, y));
        y += 2;
    }

    topInner.add(tblNameLbl = createI18NFormLabel("SL_DESC", SwingConstants.RIGHT), cc.xy(1, y));
    topInner.add(sp, cc.xy(3, y));
    y += 2;

    //topInner.add(tpbbp, cc.xywh(1, y, 3, 1)); y += 2;

    // formatter panel
    PanelBuilder fmtPanel = new PanelBuilder(new FormLayout("200px,r:m", "p"));
    fmtPanel.add(dataObjFmtCbo, cc.xy(1, 1));
    fmtPanel.add(dataObjFmtBtn, cc.xy(2, 1));

    // aggregator panel
    PanelBuilder aggPanel = new PanelBuilder(new FormLayout("200px,r:m", "p"));
    aggPanel.add(aggregatorCbo, cc.xy(1, 1));
    aggPanel.add(aggregatorBtn, cc.xy(2, 1));

    // WebLink panel
    PanelBuilder wlPanel = new PanelBuilder(new FormLayout("p,f:p:g", "p"));
    //wlPanel.add(webLinkCbo, cc.xy(1, 1));
    wlPanel.add(webLinkBtn, cc.xy(1, 1));

    topInner.add(dataObjFmtLbl, cc.xy(1, y));
    topInner.add(fmtPanel.getPanel(), cc.xy(3, y));
    y += 2;
    topInner.add(aggregatorLbl, cc.xy(1, y));
    topInner.add(aggPanel.getPanel(), cc.xy(3, y));
    y += 2;
    topInner.add(webLinkLbl, cc.xy(1, y));
    topInner.add(wlPanel.getPanel(), cc.xy(3, y));
    y += 2;

    JScrollPane tblsp = UIHelper.createScrollPane(tablesList);

    // LocalizableNameDescIFace
    fieldPanel = new FieldItemPanel(this, webLinkMgrCache, includeHiddenUI, true, isDBSchema, this, schemaType);
    fieldPanel.setStatusBar(statusBar);
    fieldPanel.setLocalizableIO(localizableIO);

    PanelBuilder pb = new PanelBuilder(
            new FormLayout("max(200px;p),4px,f:p:g", "p,4px,t:p,4px,p,4px,f:p:g,4px,p,4px,p"), this);
    pb.addSeparator(getResourceString("SL_TABLES"), cc.xywh(1, 1, 3, 1));
    pb.add(tblsp, cc.xy(1, 3));
    pb.add(topInner.getPanel(), cc.xy(3, 3));
    pb.addSeparator(getResourceString("SL_FIELDS"), cc.xywh(1, 5, 3, 1));
    pb.add(fieldPanel, cc.xywh(1, 7, 3, 1));

    if (useDisciplines) {
        disciplineBasedPanel = new DisciplineBasedPanel(this, webLinkMgrCache);
        pb.add(disciplineBasedPanel, cc.xywh(1, 9, 3, 1));
    }

    pb.getPanel().setBorder(BorderFactory.createEmptyBorder(6, 6, 6, 6));

    /*
    tblSpellChkBtn.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e)
    {
        if (checker != null)
        {
            checker.spellCheck(tblDescText);
            checker.spellCheck(tblNameText);
        }
    }
    });
    */

    tblHideChk.addChangeListener(new ChangeListener() {
        public void stateChanged(ChangeEvent e) {
            setHasChanged(true);
            setTableInfoChanged(true);
        }
    });

    ActionListener comboAL = new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            setHasChanged(true);
            setTableInfoChanged(true);

            // also mark the selected formatter or aggregator the Specify default (see bug 6163)
            setDefaultFormatterOrAggregator(e);
        }

        // sets the default formatter or aggregator according to the item selected in the combo box
        private void setDefaultFormatterOrAggregator(ActionEvent e) {
            Object src = e.getSource();
            if (src instanceof JComboBox) {
                JComboBox combo = (JComboBox) src;
                int n = combo.getModel().getSize();
                for (int i = 0; i < n; i++) {
                    Object value = combo.getModel().getElementAt(i);
                    if (value instanceof DataObjAggregator) {
                        DataObjAggregator agg = (DataObjAggregator) value;
                        // selected aggregator is also the default
                        agg.setDefault(agg == combo.getModel().getSelectedItem());
                    } else if (value instanceof DataObjSwitchFormatter) {
                        DataObjSwitchFormatter fmt = (DataObjSwitchFormatter) value;
                        // selected aggregator is also the default
                        fmt.setDefault(fmt == combo.getModel().getSelectedItem());
                    }

                }
            }
        }
    };

    dataObjFmtCbo.addActionListener(comboAL);
    aggregatorCbo.addActionListener(comboAL);

    DocumentListener dl = new DocumentListener() {
        protected void changed() {
            if (!hasTableInfoChanged) {
                setTableInfoChanged(true);
                setHasChanged(true);
            }
        }

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

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

        public void removeUpdate(DocumentEvent e) {
            changed();
        }
    };
    tblNameText.getDocument().addDocumentListener(dl);
    tblDescText.getDocument().addDocumentListener(dl);

    //statusBar.setSectionText(0, currLocale.getDisplayName());

    //tablesList.setEnabled(false);

    SchemaI18NService.getInstance().checkCurrentLocaleMenu();

    enableUIControls(false);

    setIgnoreChanges(false);
}

From source file:edu.ku.brc.specify.tools.schemalocale.SchemaToolsDlg.java

License:Open Source License

@Override
public void createUI() {
    setOkLabel(getResourceString("CLOSE"));

    super.createUI();

    setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);

    Vector<DisplayLocale> localeDisplays = new Vector<DisplayLocale>();
    for (Locale locale : SchemaLocalizerDlg.getLocalesInUseInDB(schemaType)) {
        localeDisplays.add(new DisplayLocale(locale));
    }/*from   w  ww.  jav a2 s . co m*/

    localeList = new JList(localeDisplays);
    JScrollPane sp = UIHelper.createScrollPane(localeList, true);

    CellConstraints cc = new CellConstraints();

    PanelBuilder builder = new PanelBuilder(new FormLayout("p,2px,f:p:g", "p,2px,p,16px,p,4px,p,8px,p,10px"));
    builder.addSeparator(getResourceString("SL_LOCALES_IN_USE"), cc.xywh(1, 1, 3, 1));
    builder.add(sp, cc.xywh(1, 3, 3, 1));

    builder.addSeparator(getResourceString("SL_TASKS"), cc.xywh(1, 5, 3, 1));
    builder.add(editSchemaBtn, cc.xy(1, 7));
    builder.add(removeLocaleBtn, cc.xy(3, 7));
    builder.add(exportSchemaLocBtn, cc.xy(1, 9));
    builder.add(importSchemaLocBtn, cc.xy(3, 9));

    builder.setDefaultDialogBorder();

    contentPanel = builder.getPanel();
    mainPanel.add(contentPanel, BorderLayout.CENTER);

    enableBtns(false);

    localeList.addListSelectionListener(new ListSelectionListener() {
        public void valueChanged(ListSelectionEvent e) {
            localeSelected();
        }
    });
    localeList.addMouseListener(new MouseAdapter() {
        public void mouseClicked(MouseEvent me) {
            if (me.getClickCount() == 2) {
                editSchema();
            }
        }
    });

    editSchemaBtn.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent arg0) {
            editSchema();
        }
    });

    removeLocaleBtn.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent arg0) {
            removeSchemaLocale();
        }
    });

    exportSchemaLocBtn.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent arg0) {
            exportSchemaLocales();
        }
    });

    importSchemaLocBtn.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent arg0) {
            chooseImportType();
        }
    });

    pack();
}

From source file:edu.ku.brc.specify.ui.NumberingSchemeDlg.java

License:Open Source License

@SuppressWarnings("unchecked")
@Override/*from   w w w .  j a  va2 s  .  c o  m*/
public void createUI() {
    super.createUI();

    mapToBtn = createIconBtn("Map", "WB_ADD_MAPPING_ITEM", new ActionListener() {
        public void actionPerformed(ActionEvent ae) {
            removeFromCurrentANS();
        }
    });
    unmapBtn = createIconBtn("Unmap", "WB_REMOVE_MAPPING_ITEM", new ActionListener() {
        public void actionPerformed(ActionEvent ae) {
            addToCurrentANS();
        }
    });

    typeCBX = UIHelper.createComboBox(new Object[] { "Catalog Numbers", "Acessions", "Other" });

    numSchemeList = createList(new DefaultListModel());
    nsCollList = createList(new DefaultListModel());
    availNSList = createList(new DefaultListModel());

    CellConstraints cc = new CellConstraints();
    PanelBuilder topPB = new PanelBuilder(new FormLayout("f:p:g", "f:p:g"));
    topPB.add(createScrollPane(numSchemeList), cc.xy(1, 1));

    PanelBuilder middlePanel = new PanelBuilder(new FormLayout("c:p:g", "p, 2px, p"));
    middlePanel.add(mapToBtn, cc.xy(1, 1));
    middlePanel.add(unmapBtn, cc.xy(1, 3));

    JPanel btnPanel = middlePanel.getPanel();

    PanelBuilder outerMiddlePanel = new PanelBuilder(new FormLayout("c:p:g", "f:p:g, p, f:p:g"));
    outerMiddlePanel.add(btnPanel, cc.xy(1, 2));

    PanelBuilder botPB = new PanelBuilder(new FormLayout("f:p:g,4px,p,4px,f:p:g", "p,2px,f:p:g"));
    botPB.add(createLabel("Included in Auto Number Scheme"), cc.xy(1, 1));
    botPB.add(createLabel("Available to be Added"), cc.xy(5, 1));

    botPB.add(outerMiddlePanel.getPanel(), cc.xywh(3, 3, 1, 1));

    botPB.add(createScrollPane(nsCollList), cc.xy(1, 3));
    botPB.add(createScrollPane(availNSList), cc.xy(5, 3));

    PanelBuilder pb = new PanelBuilder(new FormLayout("p,f:p:g", "p,6px,p,2px,f:p:g,16px,f:p:g"));

    int y = 1;
    pb.add(typeCBX, cc.xy(1, y));
    y += 2;
    pb.add(createLabel("Available Auto Numbering Schemes"), cc.xywh(1, y, 1, 1));
    y += 2;
    pb.add(topPB.getPanel(), cc.xywh(1, y, 2, 1));
    y += 2;
    pb.add(botPB.getPanel(), cc.xywh(1, y, 2, 1));
    y += 2;

    pb.setDefaultDialogBorder();

    contentPanel = pb.getPanel();
    mainPanel.add(contentPanel, BorderLayout.CENTER);

    //loadSchemes();

    pack();

    numSchemeList.addListSelectionListener(new ListSelectionListener() {
        @Override
        public void valueChanged(ListSelectionEvent e) {
            if (!e.getValueIsAdjusting()) {
                ansSelected();
                fillWithAvail();
            }
        }
    });

    nsCollList.addListSelectionListener(new ListSelectionListener() {
        @Override
        public void valueChanged(ListSelectionEvent e) {
            if (!e.getValueIsAdjusting()) {
                updateMoveBtns(false);
            }
        }
    });

    availNSList.addListSelectionListener(new ListSelectionListener() {
        @Override
        public void valueChanged(ListSelectionEvent e) {
            if (!e.getValueIsAdjusting()) {
                updateMoveBtns(true);
            }
        }
    });

    typeCBX.setSelectedIndex(0);
    fillCatalogNumANS();

    typeCBX.addItemListener(new ItemListener() {
        @Override
        public void itemStateChanged(ItemEvent e) {
            JComboBox cb = (JComboBox) e.getSource();
            if (e.getStateChange() == ItemEvent.SELECTED) {
                switch (cb.getSelectedIndex()) {
                case -1:
                    break;

                case 0:
                    fillCatalogNumANS();
                    break;

                case 1:
                    fillAccNumANS();
                    break;

                case 2:
                    fillOtherNumANS();
                    break;
                }
            }
        }
    });

    DataProviderSessionIFace session = DataProviderFactory.getInstance().createSession();
    try {

        for (Division div : (List<Division>) session.getDataList("FROM Division")) {
            div.forceLoad();
            allDivisions.put(div.getId(), div);
        }

        for (Collection coll : (List<Collection>) session.getDataList("FROM Collection")) {
            coll.forceLoad();
            allCollections.put(coll.getId(), coll);
        }

    } catch (Exception ex) {
        log.error(ex);
        edu.ku.brc.af.core.UsageTracker.incrHandledUsageCount();
        edu.ku.brc.exceptions.ExceptionTracker.getInstance().capture(NumberingSchemeDlg.class, ex);

    } finally {
        if (session != null) {
            session.close();
        }
    }

    okBtn.setEnabled(false);

}