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

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

Introduction

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

Prototype

public CellConstraints xyw(int col, int row, int colSpan) 

Source Link

Document

Sets the column, row, width, and height; uses a height (row span) of 1 and the horizontal and vertical default alignments.

Examples:

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

Usage

From source file:edu.ku.brc.specify.utilapps.sp5utils.Sp5Forms.java

License:Open Source License

/**
 * /* w ww .ja v  a  2s.c o  m*/
 */
protected void createUI() {
    CellConstraints cc = new CellConstraints();
    PanelBuilder pb = new PanelBuilder(new FormLayout("f:p:g,p,p:g", "p,2px,f:p:g,4px,p,2px,p,10px,p"));

    missingFieldsList = new JList(new DefaultListModel());

    formsTable = new JTable(new FormCellModel(forms));
    formsTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
        @Override
        public void valueChanged(ListSelectionEvent e) {
            if (formsTable.getSelectedRow() > -1) {
                formSelected();
            }
        }
    });

    fieldsTable = new JTable(fieldsTableModel = new FieldCellModel());

    TableColumn col = fieldsTable.getColumnModel().getColumn(1);
    col.setCellEditor(sp6FieldEditor = new Sp6FieldComboBoxEditor());

    // If the cell should appear like a combobox in its
    // non-editing state, also set the combobox renderer
    //col.setCellRenderer(sp6FieldRenderer = new Sp6FieldComboBoxRenderer());

    calcColumnWidths(formsTable);

    PanelBuilder pbBtn = new PanelBuilder(new FormLayout("f:p:g,p,f:p:g,p,f:p:g,p,f:p:g,p,f:p:g", "p"));
    reportBtn = createButton("Create Form Images");
    showBtn = createButton("Show");
    schemaBtn = createButton("Schema");
    dataCheckerBtn = createButton("Check For Nulls");
    pbBtn.add(reportBtn, cc.xy(2, 1));
    pbBtn.add(schemaBtn, cc.xy(4, 1));
    pbBtn.add(showBtn, cc.xy(6, 1));
    pbBtn.add(dataCheckerBtn, cc.xy(8, 1));

    pb.add(createLabel("Forms", SwingConstants.CENTER), cc.xy(1, 1));
    pb.add(createLabel("Missing Fields", SwingConstants.CENTER), cc.xy(3, 1));

    pb.add(createScrollPane(formsTable), cc.xy(1, 3));
    pb.add(createScrollPane(missingFieldsList), cc.xy(3, 3));

    pb.add(createLabel("Form Fields", SwingConstants.CENTER), cc.xyw(1, 5, 3));
    pb.add(createScrollPane(fieldsTable), cc.xyw(1, 7, 3));

    pb.add(pbBtn.getPanel(), cc.xyw(1, 9, 3));
    pb.setDefaultDialogBorder();

    setContentPane(new JScrollPane(pb.getPanel()));

    showBtn.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            showForm();
        }
    });
    reportBtn.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            doCreateFormImages();
        }
    });
    schemaBtn.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            doSchema();
        }
    });

    dataCheckerBtn.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            TableDataChecker tdc = new TableDataChecker(DBConnection.getInstance().createConnection());
            tdc.doCheckDB();
        }
    });

}

From source file:edu.ku.brc.ui.OrderedIconTray.java

License:Open Source License

/**
 * Creates a new instance containing zero items.
 * /*  ww  w. j  a v a 2s .  co  m*/
 */
public OrderedIconTray(final int layoutStyle, final int defWidth, final int defHeight) {
    super(layoutStyle, defWidth, defHeight);

    listModel = new ReorderableTrayListModel<Object>();
    iconListWidget.setModel(listModel);

    iconListWidget.addListSelectionListener(this);

    // rebuild the south panel to include the order manipulation buttons
    southPanel = new JPanel();
    southPanel.setLayout(new BoxLayout(southPanel, BoxLayout.LINE_AXIS));

    toStartButton = new JButton(IconManager.getIcon("FirstRec", IconSize.NonStd));
    toStartButton.setSize(20, 20);
    toStartButton.setToolTipText("Move selection to first position"); // I18N
    moveLeftButton = new JButton(IconManager.getIcon("PrevRec", IconSize.NonStd));
    moveLeftButton.setSize(20, 20);
    moveLeftButton.setToolTipText("Move selection left one position");// I18N
    moveRightButton = new JButton(IconManager.getIcon("NextRec", IconSize.NonStd));
    moveRightButton.setSize(20, 20);
    moveRightButton.setToolTipText("Move selection right one position");// I18N
    toEndButton = new JButton(IconManager.getIcon("LastRec", IconSize.NonStd));
    toEndButton.setSize(20, 20);
    toEndButton.setToolTipText("Move selection to last position");// I18N

    orderButtons = new JButton[4];
    orderButtons[0] = toStartButton;
    orderButtons[1] = moveLeftButton;
    orderButtons[2] = moveRightButton;
    orderButtons[3] = toEndButton;

    // to initialize the buttons as disabled
    valueChanged(null);

    toStartButton.addActionListener(this);
    moveLeftButton.addActionListener(this);
    moveRightButton.addActionListener(this);
    toEndButton.addActionListener(this);

    southPanel.add(Box.createHorizontalGlue());
    southPanel.add(toStartButton);
    southPanel.add(moveLeftButton);
    southPanel.add(moveRightButton);
    southPanel.add(toEndButton);
    southPanel.add(Box.createHorizontalGlue());

    //this.add(southPanel,BorderLayout.SOUTH);

    CellConstraints cc = new CellConstraints();
    PanelBuilder pb2 = new PanelBuilder(new FormLayout("f:p:g,p,f:p:g", "f:p:g,p,4px,p"), this);
    pb2.add(listScrollPane, cc.xyw(1, 2, 3));
    pb2.add(southPanel, cc.xy(2, 4));
}

From source file:edu.ku.brc.ui.UIRegistry.java

License:Open Source License

/**
 * Displays a dialog with a text field. 
 * @param lblKey the L10N key for the text field label
 * @param titleKey the L10N key for the title
 * @param msgKey optional message to be displayed, can be null or empty string
 * @param doMustHaveValue indicates that the dialog will only have an OK and will no close until a value is entered.
 * @return the string entered into the dialog.
 *///  w  w  w .  ja  va2s  .c  o  m
public static String askForString(final String lblKey, final String titleKey, final String msgKey,
        final boolean doMustHaveValue) {
    CellConstraints cc = new CellConstraints();
    PanelBuilder pb = new PanelBuilder(
            new FormLayout("p,2px,f:p:g", "p" + (StringUtils.isNotEmpty(msgKey) ? ",4px,p:g" : "")));
    final ValTextField vt = new ValTextField(32);

    vt.setRequired(doMustHaveValue);
    pb.add(UIHelper.createI18NFormLabel(lblKey), cc.xy(1, 1));
    pb.add(vt, cc.xy(3, 1));
    if (StringUtils.isNotEmpty(msgKey)) {
        pb.add(UIHelper.createI18NLabel(msgKey), cc.xyw(1, 3, 3));

    }
    pb.setDefaultDialogBorder();

    final CustomDialog dlg = new CustomDialog((Frame) null, getResourceString(titleKey), true,
            doMustHaveValue ? CustomDialog.OK_BTN : CustomDialog.OKCANCEL, pb.getPanel());
    dlg.createUI();
    dlg.getOkBtn().setEnabled(false);

    vt.addKeyListener(new KeyAdapter() {
        @Override
        public void keyTyped(KeyEvent e) {
            dlg.getOkBtn().setEnabled(StringUtils.isNotEmpty(vt.getText()));
        }
    });

    UIHelper.centerAndShow(dlg);

    return vt.getText();
}

From source file:edu.ku.brc.ui.UnhandledExceptionDialog.java

License:Open Source License

/**
 * Creates the Default UI for Lable task
 * @param message the message/* w w w  . j  a  v a 2s .c  o m*/
 * @param throwable the exception that caused it (might be null)
 */
protected void createUI(final String message, final Throwable throwable) {
    ImageIcon appIcon = IconManager.getIcon("AppIcon"); //$NON-NLS-1$
    if (appIcon != null) {
        setIconImage(appIcon.getImage());
    }

    //meg fixed merge from WB
    //setDefaultCloseOperation(HIDE_ON_CLOSE);
    setDefaultCloseOperation(DISPOSE_ON_CLOSE);

    this.setModal(false);

    int height = 100;
    PanelBuilder builder = new PanelBuilder(
            new FormLayout("p:g,1dlu,r:p:g", "p," + (throwable != null ? "10px,p,2px,f:p:g," : "") + "5px,p"));
    CellConstraints cc = new CellConstraints();

    int rowIndex = 1;

    JTextArea messageTA = new JTextArea(message);
    messageTA.setEditable(false);
    builder.add(new JScrollPane(messageTA, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
            ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED), cc.xyw(1, 1, 3));
    rowIndex += 2;

    JTextArea stackTraceTA = null;
    JScrollPane stackTraceScrollPane = null;
    if (throwable != null) {
        StringWriter strWriter = new StringWriter();
        PrintWriter pw = new PrintWriter(strWriter);

        throwable.printStackTrace(pw);
        if (throwable.getCause() != null) {
            throwable.getCause().printStackTrace(pw);
        }
        createLabel("");

        stackTraceTA = new JTextArea(strWriter.getBuffer().toString().replace("\t", "    "));
        stackTraceTA.setEditable(false);
        stackTraceScrollPane = new JScrollPane(stackTraceTA, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
                ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        stackTraceTA.setRows(15);
        builder.add(createLabel("Stack Trace", SwingConstants.CENTER), cc.xyw(1, rowIndex, 3));
        rowIndex += 2;
        builder.add(stackTraceScrollPane, cc.xyw(1, rowIndex, 3));
        rowIndex += 2;
        height += 300;
    }

    // Bottom Button UI
    JButton okBtn = createButton(getResourceString("OK"));
    builder.add(okBtn, cc.xyw(3, rowIndex, 1));

    okBtn.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent ae) {
            setVisible(false);
        }
    });
    getRootPane().setDefaultButton(okBtn);

    JPanel panel = new JPanel(new BorderLayout());
    panel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 10));
    panel.add(builder.getPanel(), BorderLayout.CENTER);
    setContentPane(panel);

    setSize(new Dimension(500, height));

}

From source file:edu.ucsf.rbvi.bioCycApp.internal.webservices.BioCycClient.java

License:Apache License

public BioCycClient(final BioCycManager manager) {
    super(manager.getURI(), CLIENT_ID, DISPLAY_NAME);
    this.manager = manager;
    this.manager.setClient(this);

    // System.out.println("BioCycClient");

    // Create the GUI and add it to the standard GUI
    databaseCombo = new JComboBox();
    databaseCombo.addActionListener(this);
    databaseCombo.setActionCommand(ACTION_SET_DATABASE);
    Object dbArray[] = getDatabases();
    databaseCombo.setModel(new DefaultComboBoxModel(dbArray));
    if (manager.getDefaultDatabase() != null)
        databaseCombo.setSelectedItem(manager.getDefaultDatabase());

    searchText = new JTextField();
    searchText.setActionCommand(ACTION_SEARCH);
    searchText.addActionListener(this);

    webServiceText = new JTextField();
    webServiceText.setActionCommand(ACTION_SET_WEBSERVICE);
    webServiceText.addActionListener(this);
    webServiceText.setText(manager.getURI());

    JButton searchBtn = new JButton("Search");
    searchBtn.setActionCommand(ACTION_SEARCH);
    searchBtn.addActionListener(this);

    resultTable = new JTable();
    resultTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    resultTable.addMouseListener(new MouseAdapter() {
        public void mouseClicked(MouseEvent e) {
            if (e.getClickCount() == 2) {
                int row = resultTable.getSelectedRow();
                ResultRow selected = tableModel.getRow(row);
                Pathway pathway = selected.getResult();
                LoadPathwayTaskFactory factory = new LoadPathwayTaskFactory(manager, pathway);
                manager.execute(factory, null);
            }/*ww w  .jav a 2  s. c  o m*/
        }
    });

    super.gui = new JPanel();
    super.gui.setLayout(new FormLayout("4dlu, pref, 2dlu, fill:pref:grow, 4dlu, pref, 4dlu, pref, 4dlu",
            "4dlu, pref, 4dlu, pref, 4dlu, pref, 4dlu, fill:pref:grow, 4dlu"));
    CellConstraints cc = new CellConstraints();
    super.gui.add(new JLabel("Web Server:"), cc.xy(2, 2));
    super.gui.add(webServiceText, cc.xy(4, 2));
    super.gui.add(new JLabel("Database:"), cc.xy(2, 4));
    super.gui.add(databaseCombo, cc.xy(4, 4));
    super.gui.add(new JLabel("Search:"), cc.xy(2, 6));
    super.gui.add(searchText, cc.xy(4, 6));
    super.gui.add(searchBtn, cc.xy(8, 6));
    super.gui.add(new JScrollPane(resultTable), cc.xyw(2, 8, 7));
}

From source file:edu.udo.scaffoldhunter.gui.dialogs.DatabaseErrorDialog.java

License:Open Source License

/**
 * @param parent//  w ww  .j  a  v  a  2 s.c  om
 * @param message
 * @param allowIgnore
 */
public DatabaseErrorDialog(Frame parent, String message, boolean allowIgnore) {
    super(parent, _("DatabaseErrorDialog.Title"), ModalityType.APPLICATION_MODAL);

    setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);

    FormLayout layout = new FormLayout("pref, 8dlu, pref:grow, 8dlu, 72dlu, 8dlu, 72dlu",
            "pref, 8dlu, top:pref:grow, 8dlu, pref");
    CellConstraints cc = new CellConstraints();

    PanelBuilder pb = new PanelBuilder(layout);
    pb.setDefaultDialogBorder();

    JButton retryButton = new JButton(_("DatabaseErrorDialog.Retry"));
    retryButton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            result = Result.RETRY;
            dispose();
        }
    });

    JButton ignoreButton = new JButton(_("DatabaseErrorDialog.Ignore"));
    ignoreButton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            result = Result.IGNORE;
            dispose();
        }
    });

    JButton quitButton = new JButton(Resources.getImageIcon("icons/misc/button.png"));
    quitButton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            result = Result.QUIT;
            dispose();
        }
    });

    pb.add(new JLabel(_("DatabaseErrorDialog.Text")), cc.xyw(3, 1, 5));
    pb.add(new JLabel("<html>" + StringEscapeUtils.escapeHTML(message) + "</html>"), cc.xyw(3, 3, 5));
    if (allowIgnore) {
        pb.add(ignoreButton, cc.xy(5, 5));
    }
    pb.add(retryButton, cc.xy(7, 5));
    pb.add(quitButton, cc.xywh(1, 1, 1, 5));

    getRootPane().setDefaultButton(retryButton);

    setContentPane(pb.getPanel());
    pack();
    setResizable(false);
    setLocationRelativeTo(parent);
}

From source file:edu.udo.scaffoldhunter.gui.dialogs.ProfileDialog.java

License:Open Source License

private JPanel getProfilePanel() {
    FormLayout layout = new FormLayout("l:d, 5dlu, f:d:grow", // 3 columns
            "f:d:grow, 5dlu, f:d, 5dlu, f:d, 5dlu, f:d, 5dlu, f:d"); // 9
    // rows/*from   w w w .  j a v  a  2 s  .  c  o  m*/
    CellConstraints cc = new CellConstraints();

    PanelBuilder pb = new PanelBuilder(layout);
    pb.setDefaultDialogBorder();

    if (dataManager != null) {
        JLabel connectionLabel = new JLabel(_("Start.Login") + ":");
        pb.add(connectionLabel, cc.xy(1, 1));

        JComboBox connectionCombo = new JComboBox(dataManager.getNamesModel());
        pb.add(connectionCombo, cc.xy(3, 1));
    }

    JLabel usernameLabel = new JLabel(_("EditProfile.Username"));
    pb.add(usernameLabel, cc.xy(1, 3));

    username = new JTextField();
    Dimension size = username.getPreferredSize();
    size.width = 180;
    username.setPreferredSize(size);
    username.getDocument().addDocumentListener(new UpdateOk());
    defaultBorder = username.getBorder();
    pb.add(username, cc.xy(3, 3));

    JLabel passwordLabel = new JLabel(_("EditProfile.Password"));

    pb.add(passwordLabel, cc.xy(1, 5));

    password = new JPasswordField();
    password.getDocument().addDocumentListener(new UpdateOk());
    pb.add(password, cc.xy(3, 5));

    JLabel password2Label = new JLabel(_("EditProfile.Password2"));
    pb.add(password2Label, cc.xy(1, 7));

    password2 = new JPasswordField();
    password2.getDocument().addDocumentListener(new UpdateOk());
    pb.add(password2, cc.xy(3, 7));

    JButton okButton = new JButton(okAction);
    getRootPane().setDefaultButton(okButton);

    JButton cancelButton = new JButton(cancelAction);

    pb.add(ButtonBarFactory.buildOKCancelBar(okButton, cancelButton), cc.xyw(1, 9, 3));

    return pb.getPanel();
}

From source file:edu.udo.scaffoldhunter.gui.dialogs.SessionDialog.java

License:Open Source License

private JPanel getSessionsPanel() {
    FormLayout layout = new FormLayout("l:d, 5dlu, f:d:grow, 5dlu, f:d", // 5
            // columns
            "f:d, 5dlu, f:d, 5dlu, f:d:grow, 5dlu, f:d"); // 7 rows
    CellConstraints cc = new CellConstraints();

    PanelBuilder pb = new PanelBuilder(layout);
    pb.setDefaultDialogBorder();//w  ww .j  av  a2s  . com

    sessionsList = new JList(sessionsModel);
    sessionsList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    sessionsList.addListSelectionListener(new ListSelectionListener() {
        @Override
        public void valueChanged(ListSelectionEvent arg0) {
            updateAllowSessionActions();
        }
    });
    sessionsList.addMouseListener(new MouseListener() {

        @Override
        public void mouseReleased(MouseEvent e) {
            // TODO Auto-generated method stub

        }

        @Override
        public void mousePressed(MouseEvent e) {
            // TODO Auto-generated method stub

        }

        @Override
        public void mouseExited(MouseEvent e) {
            // TODO Auto-generated method stub

        }

        @Override
        public void mouseEntered(MouseEvent e) {
            // TODO Auto-generated method stub

        }

        @Override
        public void mouseClicked(MouseEvent e) {
            if (e.getClickCount() == 2 && openAction.isEnabled())
                openAction.actionPerformed(null);
        }
    });
    Session session = profile.getCurrentSession();
    sessionsList.setCellRenderer(new SessionCellRenderer());
    JScrollPane sessionsScroll = new JScrollPane(sessionsList);
    sessionsScroll.setPreferredSize(new Dimension(200, 200));
    pb.add(sessionsScroll, cc.xywh(1, 1, 3, 5));
    if (session != null)
        sessionsList.setSelectedValue(findSessionInformation(session.getTitle()), true);

    JButton renameButton = new JButton(renameAction);
    pb.add(renameButton, cc.xy(5, 1));

    JButton removeButton = new JButton(removeAction);
    pb.add(removeButton, cc.xy(5, 3));

    JButton openButton = new JButton(openAction);
    getRootPane().setDefaultButton(openButton);

    JButton cancelButton = new JButton(cancelAction);
    pb.add(ButtonBarFactory.buildOKCancelBar(openButton, cancelButton), cc.xyw(1, 7, 5));

    JPanel panel = pb.getPanel();
    panel.setBorder(BorderFactory.createTitledBorder(_("Sessions.Title")));

    return panel;
}

From source file:edu.udo.scaffoldhunter.gui.dialogs.SessionDialog.java

License:Open Source License

/**
 * Creates a panel that holds all components to select a dataset and a tree.
 * //from  w w w  . j av a  2 s.c o m
 * @return The <code>JPanel</code>.
 */
private JPanel getNewSessionPanel() {
    FormLayout layout = new FormLayout("l:d, 5dlu, f:d:grow", // 3 columns
            "f:d:grow, 5dlu, f:d, 5dlu, f:d, 5dlu, f:d"); // 7 rows
    CellConstraints cc = new CellConstraints();

    PanelBuilder pb = new PanelBuilder(layout);
    pb.setDefaultDialogBorder();

    JLabel sessionTitleLabel = new JLabel(I18n.get("NewSession.SessionTitle"));
    pb.add(sessionTitleLabel, cc.xy(1, 1));

    sessionTitle = new JTextField();
    defaultBorder = sessionTitle.getBorder();
    sessionTitle.getDocument().addDocumentListener(new DocumentListener() {

        @Override
        public void removeUpdate(DocumentEvent e) {
            updateAllowAdd();
        }

        @Override
        public void insertUpdate(DocumentEvent e) {
            updateAllowAdd();
        }

        @Override
        public void changedUpdate(DocumentEvent e) {
            updateAllowAdd();
        }
    });
    sessionTitle.setText(getFreeSessionTitle());
    pb.add(sessionTitle, cc.xy(3, 1));

    JLabel datasetLabel = new JLabel(I18n.get("NewSession.Dataset"));
    pb.add(datasetLabel, cc.xy(1, 3));

    datasetsCB = new JComboBox(datasetModel);
    datasetsCB.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            updateTreeModel();
        }
    });
    pb.add(datasetsCB, cc.xy(3, 3));

    JLabel treeLabel = new JLabel(I18n.get("NewSession.Tree"));
    pb.add(treeLabel, cc.xy(1, 5));

    treesCB = new JComboBox(treeModel);
    treesCB.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            updateAllowAdd();
        }
    });
    pb.add(treesCB, cc.xy(3, 5));

    JButton okButton = new JButton(addAction);

    JButton manageDatasetsButton = new JButton(manageDatasetsAction);

    pb.add(ButtonBarFactory.buildRightAlignedBar(manageDatasetsButton, okButton), cc.xyw(1, 7, 3));

    JPanel panel = pb.getPanel();
    panel.setBorder(BorderFactory.createTitledBorder(_("NewSession.Title")));

    return panel;
}

From source file:edu.udo.scaffoldhunter.gui.filtering.FilterDialog.java

License:Open Source License

private Component getEditFiltersetPanel() {
    FormLayout layout = new FormLayout("l:d, 5dlu, l:d:grow, 5dlu, r:d", // 5
            // columns
            "f:d, 5dlu, f:d:grow, 5dlu, c:d"); // 5 rows
    CellConstraints cc = new CellConstraints();

    PanelBuilder pb = new PanelBuilder(layout);

    JLabel titleLabel = new JLabel(_("Filtersets.FiltersetTitle"));
    pb.add(titleLabel, cc.xy(1, 1));/* w ww.j  a  v  a 2  s .c  om*/

    filtersetTitle = new JTextField();
    Dimension dim = filtersetTitle.getPreferredSize();
    dim.width = 400;
    filtersetTitle.setPreferredSize(dim);
    filtersetTitle.getDocument().addDocumentListener(new DocumentListener() {
        @Override
        public void removeUpdate(DocumentEvent e) {
            setFiltersetChanged(true, false);
        }

        @Override
        public void insertUpdate(DocumentEvent e) {
            setFiltersetChanged(true, false);
        }

        @Override
        public void changedUpdate(DocumentEvent e) {
            setFiltersetChanged(true, false);
        }
    });
    pb.add(filtersetTitle, cc.xyw(3, 1, 3));

    filtersPanel = new JPanel();
    filtersPanel.setLayout(new BoxLayout(filtersPanel, BoxLayout.Y_AXIS));
    JScrollPane filtersScroll = new JScrollPane(filtersPanel);
    Dimension filtersDim = filtersScroll.getPreferredSize();
    filtersDim.height = 200;
    filtersDim.width = 555;
    filtersScroll.setPreferredSize(filtersDim);
    pb.add(filtersScroll, cc.xyw(1, 3, 5));

    filtersetConjunctive = new JComboBox();
    filtersetConjunctive.addItem(_("Filtersets.Conjunctive"));
    filtersetConjunctive.addItem(_("Filtersets.Disconjunctive"));
    filtersetConjunctive.addActionListener(new ConjunctiveChanged());
    pb.add(filtersetConjunctive, cc.xy(3, 5));

    saveFiltersetButton = new JButton(new SaveFiltersetAction());
    pb.add(saveFiltersetButton, cc.xy(5, 5));

    JPanel panel = pb.getPanel();
    panel.setBorder(BorderFactory.createTitledBorder(_("Filtersets.EditFiltersetBorder")));

    panel.setEnabled(false);

    return panel;
}