Search in sources :

Example 6 with ListSelectionEvent

use of javax.swing.event.ListSelectionEvent in project gitblit by gitblit.

the class RegistrationsDialog method initialize.

private void initialize() {
    NameRenderer nameRenderer = new NameRenderer();
    model = new RegistrationsTableModel(registrations);
    registrationsTable = Utils.newTable(model, Utils.DATE_FORMAT);
    String id = registrationsTable.getColumnName(RegistrationsTableModel.Columns.Name.ordinal());
    registrationsTable.getColumn(id).setCellRenderer(nameRenderer);
    registrationsTable.addMouseListener(new MouseAdapter() {

        @Override
        public void mouseClicked(MouseEvent e) {
            if (e.getClickCount() == 2) {
                login();
            }
        }
    });
    final JButton create = new JButton(Translation.get("gb.create"));
    create.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent event) {
            create();
        }
    });
    final JButton login = new JButton(Translation.get("gb.login"));
    login.setEnabled(false);
    login.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent event) {
            login();
        }
    });
    final JButton edit = new JButton(Translation.get("gb.edit"));
    edit.setEnabled(false);
    edit.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent event) {
            edit();
        }
    });
    final JButton delete = new JButton(Translation.get("gb.delete"));
    delete.setEnabled(false);
    delete.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent event) {
            delete();
        }
    });
    registrationsTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {

        @Override
        public void valueChanged(ListSelectionEvent e) {
            if (e.getValueIsAdjusting()) {
                return;
            }
            boolean singleSelection = registrationsTable.getSelectedRowCount() == 1;
            boolean selected = registrationsTable.getSelectedRow() > -1;
            login.setEnabled(singleSelection);
            edit.setEnabled(singleSelection);
            delete.setEnabled(selected);
        }
    });
    JPanel controls = new JPanel(new FlowLayout(FlowLayout.CENTER, 5, 0));
    controls.add(create);
    controls.add(login);
    controls.add(edit);
    controls.add(delete);
    final Insets insets = new Insets(5, 5, 5, 5);
    JPanel centerPanel = new JPanel(new BorderLayout(5, 5)) {

        private static final long serialVersionUID = 1L;

        @Override
        public Insets getInsets() {
            return insets;
        }
    };
    centerPanel.add(new HeaderPanel(Translation.get("gb.servers"), null), BorderLayout.NORTH);
    centerPanel.add(new JScrollPane(registrationsTable), BorderLayout.CENTER);
    centerPanel.add(controls, BorderLayout.SOUTH);
    getContentPane().setLayout(new BorderLayout(5, 5));
    getContentPane().add(centerPanel, BorderLayout.CENTER);
}
Also used : JScrollPane(javax.swing.JScrollPane) JPanel(javax.swing.JPanel) MouseEvent(java.awt.event.MouseEvent) FlowLayout(java.awt.FlowLayout) Insets(java.awt.Insets) ActionEvent(java.awt.event.ActionEvent) MouseAdapter(java.awt.event.MouseAdapter) JButton(javax.swing.JButton) ListSelectionEvent(javax.swing.event.ListSelectionEvent) ListSelectionListener(javax.swing.event.ListSelectionListener) ActionListener(java.awt.event.ActionListener) BorderLayout(java.awt.BorderLayout)

Example 7 with ListSelectionEvent

use of javax.swing.event.ListSelectionEvent in project gitblit by gitblit.

the class SearchDialog method initialize.

private void initialize() {
    prev = new JButton("<");
    prev.setToolTipText(Translation.get("gb.pagePrevious"));
    prev.setEnabled(false);
    prev.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            search(--page);
        }
    });
    next = new JButton(">");
    next.setToolTipText(Translation.get("gb.pageNext"));
    next.setEnabled(false);
    next.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            search(++page);
        }
    });
    final JButton search = new JButton(Translation.get(isSearch ? "gb.search" : "gb.refresh"));
    search.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            search(0);
        }
    });
    final JButton viewCommit = new JButton(Translation.get("gb.view"));
    viewCommit.setEnabled(false);
    viewCommit.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            viewCommit();
        }
    });
    final JButton viewCommitDiff = new JButton(Translation.get("gb.commitdiff"));
    viewCommitDiff.setEnabled(false);
    viewCommitDiff.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            viewCommitDiff();
        }
    });
    final JButton viewTree = new JButton(Translation.get("gb.tree"));
    viewTree.setEnabled(false);
    viewTree.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            viewTree();
        }
    });
    JPanel controls = new JPanel(new FlowLayout(FlowLayout.CENTER, Utils.MARGIN, 0));
    controls.add(viewCommit);
    controls.add(viewCommitDiff);
    controls.add(viewTree);
    NameRenderer nameRenderer = new NameRenderer();
    tableModel = new FeedEntryTableModel();
    header = new HeaderPanel(Translation.get(isSearch ? "gb.search" : "gb.log"), isSearch ? "search-icon.png" : "commit_changes_16x16.png");
    table = Utils.newTable(tableModel, Utils.DATE_FORMAT);
    String name = table.getColumnName(FeedEntryTableModel.Columns.Author.ordinal());
    table.getColumn(name).setCellRenderer(nameRenderer);
    name = table.getColumnName(FeedEntryTableModel.Columns.Repository.ordinal());
    table.getColumn(name).setCellRenderer(nameRenderer);
    name = table.getColumnName(FeedEntryTableModel.Columns.Branch.ordinal());
    table.getColumn(name).setCellRenderer(new BranchRenderer());
    name = table.getColumnName(FeedEntryTableModel.Columns.Message.ordinal());
    table.getColumn(name).setCellRenderer(new MessageRenderer());
    table.addMouseListener(new MouseAdapter() {

        @Override
        public void mouseClicked(MouseEvent e) {
            if (e.getClickCount() == 2) {
                if (e.isControlDown()) {
                    viewCommitDiff();
                } else {
                    viewCommit();
                }
            }
        }
    });
    table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {

        @Override
        public void valueChanged(ListSelectionEvent e) {
            if (e.getValueIsAdjusting()) {
                return;
            }
            boolean singleSelection = table.getSelectedRowCount() == 1;
            viewCommit.setEnabled(singleSelection);
            viewCommitDiff.setEnabled(singleSelection);
            viewTree.setEnabled(singleSelection);
        }
    });
    repositorySelector = new JComboBox(gitblit.getRepositories().toArray());
    repositorySelector.setRenderer(nameRenderer);
    repositorySelector.setForeground(nameRenderer.getForeground());
    repositorySelector.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent event) {
            // repopulate the branch list based on repository selection
            // preserve branch selection, if possible
            String selectedBranch = null;
            if (branchSelector.getSelectedIndex() > -1) {
                selectedBranch = branchSelector.getSelectedItem().toString();
            }
            updateBranches();
            if (StringUtils.isEmpty(selectedBranch)) {
                // do not select branch
                branchSelector.setSelectedIndex(-1);
            } else {
                if (branchChoices.getIndexOf(selectedBranch) > -1) {
                    // select branch
                    branchChoices.setSelectedItem(selectedBranch);
                } else {
                    // branch does not exist, do not select branch
                    branchSelector.setSelectedIndex(-1);
                }
            }
        }
    });
    branchChoices = new DefaultComboBoxModel();
    branchSelector = new JComboBox(branchChoices);
    branchSelector.setRenderer(new BranchRenderer());
    searchTypeSelector = new JComboBox(Constants.SearchType.values());
    searchTypeSelector.setSelectedItem(Constants.SearchType.COMMIT);
    maxHitsSelector = new JComboBox(new Integer[] { 25, 50, 75, 100 });
    maxHitsSelector.setSelectedIndex(0);
    searchFragment = new JTextField(25);
    searchFragment.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent event) {
            search(0);
        }
    });
    JPanel queryPanel = new JPanel(new FlowLayout(FlowLayout.LEFT, Utils.MARGIN, 0));
    queryPanel.add(new JLabel(Translation.get("gb.repository")));
    queryPanel.add(repositorySelector);
    queryPanel.add(new JLabel(Translation.get("gb.branch")));
    queryPanel.add(branchSelector);
    if (isSearch) {
        queryPanel.add(new JLabel(Translation.get("gb.type")));
        queryPanel.add(searchTypeSelector);
    }
    queryPanel.add(new JLabel(Translation.get("gb.maxHits")));
    queryPanel.add(maxHitsSelector);
    JPanel actionsPanel = new JPanel(new FlowLayout(FlowLayout.LEFT, Utils.MARGIN, 0));
    actionsPanel.add(search);
    actionsPanel.add(prev);
    actionsPanel.add(next);
    JPanel northControls = new JPanel(new BorderLayout(Utils.MARGIN, Utils.MARGIN));
    northControls.add(queryPanel, BorderLayout.WEST);
    if (isSearch) {
        northControls.add(searchFragment, BorderLayout.CENTER);
    }
    northControls.add(actionsPanel, BorderLayout.EAST);
    JPanel northPanel = new JPanel(new BorderLayout(0, Utils.MARGIN));
    northPanel.add(header, BorderLayout.NORTH);
    northPanel.add(northControls, BorderLayout.CENTER);
    JPanel contentPanel = new JPanel() {

        private static final long serialVersionUID = 1L;

        @Override
        public Insets getInsets() {
            return Utils.INSETS;
        }
    };
    contentPanel.setLayout(new BorderLayout(Utils.MARGIN, Utils.MARGIN));
    contentPanel.add(northPanel, BorderLayout.NORTH);
    contentPanel.add(new JScrollPane(table), BorderLayout.CENTER);
    contentPanel.add(controls, BorderLayout.SOUTH);
    setLayout(new BorderLayout());
    add(contentPanel, BorderLayout.CENTER);
    addWindowListener(new WindowAdapter() {

        @Override
        public void windowOpened(WindowEvent event) {
            if (isSearch) {
                searchFragment.requestFocus();
            } else {
                search(0);
            }
        }

        @Override
        public void windowActivated(WindowEvent event) {
            if (isSearch) {
                searchFragment.requestFocus();
            }
        }
    });
}
Also used : JPanel(javax.swing.JPanel) FlowLayout(java.awt.FlowLayout) ActionEvent(java.awt.event.ActionEvent) JButton(javax.swing.JButton) ListSelectionEvent(javax.swing.event.ListSelectionEvent) WindowAdapter(java.awt.event.WindowAdapter) JTextField(javax.swing.JTextField) BorderLayout(java.awt.BorderLayout) JScrollPane(javax.swing.JScrollPane) MouseEvent(java.awt.event.MouseEvent) JComboBox(javax.swing.JComboBox) MouseAdapter(java.awt.event.MouseAdapter) JLabel(javax.swing.JLabel) DefaultComboBoxModel(javax.swing.DefaultComboBoxModel) ListSelectionListener(javax.swing.event.ListSelectionListener) ActionListener(java.awt.event.ActionListener) WindowEvent(java.awt.event.WindowEvent)

Example 8 with ListSelectionEvent

use of javax.swing.event.ListSelectionEvent in project gitblit by gitblit.

the class UsersPanel method initialize.

private void initialize() {
    JButton refreshUsers = new JButton(Translation.get("gb.refresh"));
    refreshUsers.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            refreshUsers();
        }
    });
    JButton createUser = new JButton(Translation.get("gb.create"));
    createUser.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            createUser();
        }
    });
    final JButton editUser = new JButton(Translation.get("gb.edit"));
    editUser.setEnabled(false);
    editUser.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            editUser(getSelectedUsers().get(0));
        }
    });
    final JButton delUser = new JButton(Translation.get("gb.delete"));
    delUser.setEnabled(false);
    delUser.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            deleteUsers(getSelectedUsers());
        }
    });
    NameRenderer nameRenderer = new NameRenderer();
    tableModel = new UsersTableModel();
    defaultSorter = new TableRowSorter<UsersTableModel>(tableModel);
    table = Utils.newTable(tableModel, Utils.DATE_FORMAT);
    String name = table.getColumnName(UsersTableModel.Columns.Name.ordinal());
    table.getColumn(name).setCellRenderer(nameRenderer);
    int w = 130;
    name = table.getColumnName(UsersTableModel.Columns.Type.ordinal());
    table.getColumn(name).setMinWidth(w);
    table.getColumn(name).setMaxWidth(w);
    name = table.getColumnName(UsersTableModel.Columns.Teams.ordinal());
    table.getColumn(name).setMinWidth(w);
    table.getColumn(name).setMaxWidth(w);
    name = table.getColumnName(UsersTableModel.Columns.Repositories.ordinal());
    table.getColumn(name).setMinWidth(w);
    table.getColumn(name).setMaxWidth(w);
    table.setRowSorter(defaultSorter);
    table.getRowSorter().toggleSortOrder(UsersTableModel.Columns.Name.ordinal());
    table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {

        @Override
        public void valueChanged(ListSelectionEvent e) {
            if (e.getValueIsAdjusting()) {
                return;
            }
            boolean selected = table.getSelectedRow() > -1;
            boolean singleSelection = table.getSelectedRows().length == 1;
            editUser.setEnabled(singleSelection && selected);
            delUser.setEnabled(selected);
        }
    });
    table.addMouseListener(new MouseAdapter() {

        @Override
        public void mouseClicked(MouseEvent e) {
            if (e.getClickCount() == 2) {
                editUser(getSelectedUsers().get(0));
            }
        }
    });
    filterTextfield = new JTextField();
    filterTextfield.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            filterUsers(filterTextfield.getText());
        }
    });
    filterTextfield.addKeyListener(new KeyAdapter() {

        @Override
        public void keyReleased(KeyEvent e) {
            filterUsers(filterTextfield.getText());
        }
    });
    JPanel userFilterPanel = new JPanel(new BorderLayout(Utils.MARGIN, Utils.MARGIN));
    userFilterPanel.add(new JLabel(Translation.get("gb.filter")), BorderLayout.WEST);
    userFilterPanel.add(filterTextfield, BorderLayout.CENTER);
    JPanel userTablePanel = new JPanel(new BorderLayout(Utils.MARGIN, Utils.MARGIN));
    userTablePanel.add(userFilterPanel, BorderLayout.NORTH);
    userTablePanel.add(new JScrollPane(table), BorderLayout.CENTER);
    JPanel userControls = new JPanel(new FlowLayout(FlowLayout.CENTER, 5, 0));
    userControls.add(refreshUsers);
    userControls.add(createUser);
    userControls.add(editUser);
    userControls.add(delUser);
    setLayout(new BorderLayout(Utils.MARGIN, Utils.MARGIN));
    header = new HeaderPanel(Translation.get("gb.users"), "user_16x16.png");
    add(header, BorderLayout.NORTH);
    add(userTablePanel, BorderLayout.CENTER);
    add(userControls, BorderLayout.SOUTH);
}
Also used : JScrollPane(javax.swing.JScrollPane) JPanel(javax.swing.JPanel) MouseEvent(java.awt.event.MouseEvent) FlowLayout(java.awt.FlowLayout) ActionEvent(java.awt.event.ActionEvent) KeyAdapter(java.awt.event.KeyAdapter) JButton(javax.swing.JButton) ListSelectionEvent(javax.swing.event.ListSelectionEvent) MouseAdapter(java.awt.event.MouseAdapter) JLabel(javax.swing.JLabel) JTextField(javax.swing.JTextField) ListSelectionListener(javax.swing.event.ListSelectionListener) KeyEvent(java.awt.event.KeyEvent) ActionListener(java.awt.event.ActionListener) BorderLayout(java.awt.BorderLayout)

Example 9 with ListSelectionEvent

use of javax.swing.event.ListSelectionEvent in project gitblit by gitblit.

the class FeedsPanel method initialize.

private void initialize() {
    prev = new JButton("<");
    prev.setToolTipText(Translation.get("gb.pagePrevious"));
    prev.setEnabled(false);
    prev.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            refreshFeeds(--page);
        }
    });
    next = new JButton(">");
    next.setToolTipText(Translation.get("gb.pageNext"));
    next.setEnabled(false);
    next.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            refreshFeeds(++page);
        }
    });
    JButton refreshFeeds = new JButton(Translation.get("gb.refresh"));
    refreshFeeds.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            refreshFeeds(0);
        }
    });
    final JButton viewCommit = new JButton(Translation.get("gb.view"));
    viewCommit.setEnabled(false);
    viewCommit.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            viewCommit();
        }
    });
    final JButton viewCommitDiff = new JButton(Translation.get("gb.commitdiff"));
    viewCommitDiff.setEnabled(false);
    viewCommitDiff.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            viewCommitDiff();
        }
    });
    final JButton viewTree = new JButton(Translation.get("gb.tree"));
    viewTree.setEnabled(false);
    viewTree.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            viewTree();
        }
    });
    JButton subscribeFeeds = new JButton(Translation.get("gb.subscribe") + "...");
    subscribeFeeds.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            subscribeFeeds(gitblit.getAvailableFeeds());
        }
    });
    JPanel controls = new JPanel(new FlowLayout(FlowLayout.CENTER, Utils.MARGIN, 0));
    controls.add(refreshFeeds);
    controls.add(subscribeFeeds);
    controls.add(viewCommit);
    controls.add(viewCommitDiff);
    controls.add(viewTree);
    NameRenderer nameRenderer = new NameRenderer();
    tableModel = new FeedEntryTableModel();
    header = new HeaderPanel(Translation.get("gb.activity"), "feed_16x16.png");
    table = Utils.newTable(tableModel, Utils.DATE_FORMAT);
    defaultSorter = new TableRowSorter<FeedEntryTableModel>(tableModel);
    String name = table.getColumnName(FeedEntryTableModel.Columns.Author.ordinal());
    table.getColumn(name).setCellRenderer(nameRenderer);
    name = table.getColumnName(FeedEntryTableModel.Columns.Repository.ordinal());
    table.getColumn(name).setCellRenderer(nameRenderer);
    name = table.getColumnName(FeedEntryTableModel.Columns.Branch.ordinal());
    table.getColumn(name).setCellRenderer(new BranchRenderer());
    name = table.getColumnName(FeedEntryTableModel.Columns.Message.ordinal());
    table.getColumn(name).setCellRenderer(new MessageRenderer(gitblit));
    table.addMouseListener(new MouseAdapter() {

        @Override
        public void mouseClicked(MouseEvent e) {
            if (e.getClickCount() == 2) {
                if (e.isControlDown()) {
                    viewCommitDiff();
                } else {
                    viewCommit();
                }
            }
        }
    });
    table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {

        @Override
        public void valueChanged(ListSelectionEvent e) {
            if (e.getValueIsAdjusting()) {
                return;
            }
            boolean singleSelection = table.getSelectedRowCount() == 1;
            viewCommit.setEnabled(singleSelection);
            viewCommitDiff.setEnabled(singleSelection);
            viewTree.setEnabled(singleSelection);
        }
    });
    repositoryChoices = new DefaultComboBoxModel();
    repositorySelector = new JComboBox(repositoryChoices);
    repositorySelector.setRenderer(nameRenderer);
    repositorySelector.setForeground(nameRenderer.getForeground());
    repositorySelector.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent event) {
            // repopulate the author list based on repository selection
            // preserve author selection, if possible
            String selectedAuthor = null;
            if (authorSelector.getSelectedIndex() > -1) {
                selectedAuthor = authorSelector.getSelectedItem().toString();
            }
            updateAuthors();
            if (selectedAuthor != null) {
                if (authorChoices.getIndexOf(selectedAuthor) > -1) {
                    authorChoices.setSelectedItem(selectedAuthor);
                }
            }
            filterFeeds();
        }
    });
    authorChoices = new DefaultComboBoxModel();
    authorSelector = new JComboBox(authorChoices);
    authorSelector.setRenderer(nameRenderer);
    authorSelector.setForeground(nameRenderer.getForeground());
    authorSelector.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent event) {
            filterFeeds();
        }
    });
    JPanel northControls = new JPanel(new FlowLayout(FlowLayout.LEFT, Utils.MARGIN, 0));
    northControls.add(new JLabel(Translation.get("gb.repository")));
    northControls.add(repositorySelector);
    northControls.add(new JLabel(Translation.get("gb.author")));
    northControls.add(authorSelector);
    //		northControls.add(prev);
    //		northControls.add(next);
    JPanel northPanel = new JPanel(new BorderLayout(0, Utils.MARGIN));
    northPanel.add(header, BorderLayout.NORTH);
    northPanel.add(northControls, BorderLayout.CENTER);
    setLayout(new BorderLayout(Utils.MARGIN, Utils.MARGIN));
    add(northPanel, BorderLayout.NORTH);
    add(new JScrollPane(table), BorderLayout.CENTER);
    add(controls, BorderLayout.SOUTH);
}
Also used : JScrollPane(javax.swing.JScrollPane) JPanel(javax.swing.JPanel) FlowLayout(java.awt.FlowLayout) MouseEvent(java.awt.event.MouseEvent) JComboBox(javax.swing.JComboBox) ActionEvent(java.awt.event.ActionEvent) JButton(javax.swing.JButton) MouseAdapter(java.awt.event.MouseAdapter) ListSelectionEvent(javax.swing.event.ListSelectionEvent) JLabel(javax.swing.JLabel) DefaultComboBoxModel(javax.swing.DefaultComboBoxModel) ListSelectionListener(javax.swing.event.ListSelectionListener) ActionListener(java.awt.event.ActionListener) BorderLayout(java.awt.BorderLayout)

Example 10 with ListSelectionEvent

use of javax.swing.event.ListSelectionEvent in project gitblit by gitblit.

the class SettingsPanel method initialize.

private void initialize() {
    JButton refreshSettings = new JButton(Translation.get("gb.refresh"));
    refreshSettings.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            refreshSettings();
        }
    });
    final JButton editSetting = new JButton(Translation.get("gb.edit"));
    editSetting.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            int viewRow = table.getSelectedRow();
            int modelRow = table.convertRowIndexToModel(viewRow);
            String key = tableModel.keys.get(modelRow);
            SettingModel setting = tableModel.settings.get(key);
            editSetting(setting);
        }
    });
    NameRenderer nameRenderer = new NameRenderer();
    final SettingPanel settingPanel = new SettingPanel();
    tableModel = new SettingsTableModel();
    defaultSorter = new TableRowSorter<SettingsTableModel>(tableModel);
    table = Utils.newTable(tableModel, Utils.DATE_FORMAT);
    table.setDefaultRenderer(SettingModel.class, new SettingCellRenderer());
    String name = table.getColumnName(UsersTableModel.Columns.Name.ordinal());
    table.getColumn(name).setCellRenderer(nameRenderer);
    table.setRowSorter(defaultSorter);
    table.getRowSorter().toggleSortOrder(SettingsTableModel.Columns.Name.ordinal());
    table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {

        @Override
        public void valueChanged(ListSelectionEvent e) {
            if (e.getValueIsAdjusting()) {
                return;
            }
            boolean singleSelection = table.getSelectedRows().length == 1;
            editSetting.setEnabled(singleSelection);
            if (singleSelection) {
                int viewRow = table.getSelectedRow();
                int modelRow = table.convertRowIndexToModel(viewRow);
                SettingModel setting = tableModel.get(modelRow);
                settingPanel.setSetting(setting);
            } else {
                settingPanel.clear();
            }
        }
    });
    table.addMouseListener(new MouseAdapter() {

        @Override
        public void mouseClicked(MouseEvent e) {
            if (e.getClickCount() == 2) {
                int viewRow = table.getSelectedRow();
                int modelRow = table.convertRowIndexToModel(viewRow);
                SettingModel setting = tableModel.get(modelRow);
                editSetting(setting);
            }
        }
    });
    filterTextfield = new JTextField();
    filterTextfield.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            filterSettings(filterTextfield.getText());
        }
    });
    filterTextfield.addKeyListener(new KeyAdapter() {

        @Override
        public void keyReleased(KeyEvent e) {
            filterSettings(filterTextfield.getText());
        }
    });
    JPanel settingFilterPanel = new JPanel(new BorderLayout(Utils.MARGIN, Utils.MARGIN));
    settingFilterPanel.add(new JLabel(Translation.get("gb.filter")), BorderLayout.WEST);
    settingFilterPanel.add(filterTextfield, BorderLayout.CENTER);
    JPanel settingsTablePanel = new JPanel(new BorderLayout(Utils.MARGIN, Utils.MARGIN));
    settingsTablePanel.add(settingFilterPanel, BorderLayout.NORTH);
    settingsTablePanel.add(new JScrollPane(table), BorderLayout.CENTER);
    settingsTablePanel.add(settingPanel, BorderLayout.SOUTH);
    JPanel settingsControls = new JPanel(new FlowLayout(FlowLayout.CENTER, 5, 0));
    settingsControls.add(refreshSettings);
    settingsControls.add(editSetting);
    setLayout(new BorderLayout(Utils.MARGIN, Utils.MARGIN));
    header = new HeaderPanel(Translation.get("gb.settings"), "settings_16x16.png");
    add(header, BorderLayout.NORTH);
    add(settingsTablePanel, BorderLayout.CENTER);
    add(settingsControls, BorderLayout.SOUTH);
}
Also used : SettingModel(com.gitblit.models.SettingModel) JScrollPane(javax.swing.JScrollPane) JPanel(javax.swing.JPanel) MouseEvent(java.awt.event.MouseEvent) FlowLayout(java.awt.FlowLayout) ActionEvent(java.awt.event.ActionEvent) KeyAdapter(java.awt.event.KeyAdapter) JButton(javax.swing.JButton) ListSelectionEvent(javax.swing.event.ListSelectionEvent) MouseAdapter(java.awt.event.MouseAdapter) JLabel(javax.swing.JLabel) JTextField(javax.swing.JTextField) ListSelectionListener(javax.swing.event.ListSelectionListener) KeyEvent(java.awt.event.KeyEvent) ActionListener(java.awt.event.ActionListener) BorderLayout(java.awt.BorderLayout)

Aggregations

ListSelectionEvent (javax.swing.event.ListSelectionEvent)110 ListSelectionListener (javax.swing.event.ListSelectionListener)101 ActionEvent (java.awt.event.ActionEvent)29 ActionListener (java.awt.event.ActionListener)23 JPanel (javax.swing.JPanel)22 JScrollPane (javax.swing.JScrollPane)22 MouseEvent (java.awt.event.MouseEvent)21 JButton (javax.swing.JButton)18 JBList (com.intellij.ui.components.JBList)16 BorderLayout (java.awt.BorderLayout)16 JLabel (javax.swing.JLabel)16 MouseAdapter (java.awt.event.MouseAdapter)11 NotNull (org.jetbrains.annotations.NotNull)11 FlowLayout (java.awt.FlowLayout)10 Insets (java.awt.Insets)10 ArrayList (java.util.ArrayList)9 List (java.util.List)9 Dimension (java.awt.Dimension)8 KeyAdapter (java.awt.event.KeyAdapter)8 KeyEvent (java.awt.event.KeyEvent)8