Search in sources :

Example 21 with ListSelectionModel

use of javax.swing.ListSelectionModel in project pcgen by PCGen.

the class SkillInfoTab method createModels.

@Override
public ModelMap createModels(final CharacterFacade character) {
    ModelMap models = new ModelMap();
    ListSelectionModel listModel = new DefaultListSelectionModel();
    listModel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    models.put(ListSelectionModel.class, listModel);
    models.put(SkillPointTableModel.class, new SkillPointTableModel(character));
    models.put(SkillTreeViewModel.class, new SkillTreeViewModel(character, listModel));
    models.put(FilterHandler.class, new FilterHandler(character, listModel));
    models.put(InfoHandler.class, new InfoHandler(character));
    models.put(LevelSelectionHandler.class, new LevelSelectionHandler(character, listModel));
    models.put(SkillRankSpinnerEditor.class, new SkillRankSpinnerEditor(character, listModel));
    SkillSheetHandler skillSheetHandler = new SkillSheetHandler(character);
    models.put(SkillSheetHandler.class, skillSheetHandler);
    models.put(SkillFilterHandler.class, new SkillFilterHandler(character, skillSheetHandler));
    return models;
}
Also used : SkillPointTableModel(pcgen.gui2.tabs.skill.SkillPointTableModel) DefaultListSelectionModel(javax.swing.DefaultListSelectionModel) ListSelectionModel(javax.swing.ListSelectionModel) DefaultListSelectionModel(javax.swing.DefaultListSelectionModel) SkillTreeViewModel(pcgen.gui2.tabs.skill.SkillTreeViewModel)

Example 22 with ListSelectionModel

use of javax.swing.ListSelectionModel in project poi by apache.

the class SVSheetTable method setFormulaDisplay.

public void setFormulaDisplay(JTextComponent formulaDisplay) {
    ListSelectionModel rowSelMod = getSelectionModel();
    ListSelectionModel colSelMod = getColumnModel().getSelectionModel();
    if (formulaDisplay == null) {
        rowSelMod.removeListSelectionListener(formulaListener);
        colSelMod.removeListSelectionListener(formulaListener);
        formulaListener = null;
    }
    if (formulaDisplay != null) {
        formulaListener = new FormulaDisplayListener(formulaDisplay);
        rowSelMod.addListSelectionListener(formulaListener);
        colSelMod.addListSelectionListener(formulaListener);
    }
}
Also used : ListSelectionModel(javax.swing.ListSelectionModel)

Example 23 with ListSelectionModel

use of javax.swing.ListSelectionModel in project jabref by JabRef.

the class IntegrityCheckAction method actionPerformed.

@Override
public void actionPerformed(ActionEvent e) {
    IntegrityCheck check = new IntegrityCheck(frame.getCurrentBasePanel().getBibDatabaseContext(), Globals.prefs.getFileDirectoryPreferences(), Globals.prefs.getBibtexKeyPatternPreferences(), Globals.journalAbbreviationLoader.getRepository(Globals.prefs.getJournalAbbreviationPreferences()));
    List<IntegrityMessage> messages = check.checkBibtexDatabase();
    if (messages.isEmpty()) {
        JOptionPane.showMessageDialog(frame.getCurrentBasePanel(), Localization.lang("No problems found."));
    } else {
        Map<String, Boolean> showMessage = new HashMap<>();
        // prepare data model
        Object[][] model = new Object[messages.size()][4];
        int i = 0;
        for (IntegrityMessage message : messages) {
            model[i][0] = message.getEntry().getId();
            model[i][1] = message.getEntry().getCiteKeyOptional().orElse("");
            model[i][2] = message.getFieldName();
            model[i][3] = message.getMessage();
            showMessage.put(message.getMessage(), true);
            i++;
        }
        // construct view
        JTable table = new JTable(model, new Object[] { "ID", Localization.lang("BibTeX key"), Localization.lang("Field"), Localization.lang("Message") });
        // hide IDs
        TableColumnModel columnModel = table.getColumnModel();
        columnModel.removeColumn(columnModel.getColumn(0));
        RowFilter<Object, Object> filter = new RowFilter<Object, Object>() {

            @Override
            public boolean include(Entry<?, ?> entry) {
                return showMessage.get(entry.getStringValue(3));
            }
        };
        TableRowSorter<TableModel> sorter = new TableRowSorter<>(table.getModel());
        sorter.setRowFilter(filter);
        table.setRowSorter(sorter);
        table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        table.setDefaultEditor(Object.class, null);
        ListSelectionModel selectionModel = table.getSelectionModel();
        selectionModel.addListSelectionListener(event -> {
            if (!event.getValueIsAdjusting()) {
                try {
                    String entryId = (String) model[table.convertRowIndexToModel(table.getSelectedRow())][0];
                    String fieldName = (String) model[table.convertRowIndexToModel(table.getSelectedRow())][2];
                    frame.getCurrentBasePanel().editEntryByIdAndFocusField(entryId, fieldName);
                } catch (ArrayIndexOutOfBoundsException exception) {
                }
            }
        });
        // BibTeX key
        table.getColumnModel().getColumn(0).setPreferredWidth(100);
        // field name
        table.getColumnModel().getColumn(1).setPreferredWidth(60);
        // message
        table.getColumnModel().getColumn(2).setPreferredWidth(400);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN);
        JScrollPane scrollPane = new JScrollPane(table);
        String title = Localization.lang("%0 problem(s) found", String.valueOf(messages.size()));
        JDialog dialog = new JDialog(frame, title, false);
        JPopupMenu menu = new JPopupMenu();
        for (String messageString : showMessage.keySet()) {
            JCheckBoxMenuItem menuItem = new JCheckBoxMenuItem(messageString, true);
            menuItem.addActionListener(event -> {
                showMessage.put(messageString, menuItem.isSelected());
                ((AbstractTableModel) table.getModel()).fireTableDataChanged();
            });
            menu.add(menuItem);
        }
        JButton menuButton = new JButton(Localization.lang("Filter"));
        menuButton.addActionListener(entry -> menu.show(menuButton, 0, menuButton.getHeight()));
        FormBuilder builder = FormBuilder.create().layout(new FormLayout("fill:pref:grow", "fill:pref:grow, 2dlu, pref"));
        builder.add(scrollPane).xy(1, 1);
        builder.add(menuButton).xy(1, 3, "c, b");
        dialog.add(builder.getPanel());
        dialog.setSize(600, 600);
        // show view
        dialog.setVisible(true);
    }
}
Also used : HashMap(java.util.HashMap) JButton(javax.swing.JButton) TableColumnModel(javax.swing.table.TableColumnModel) IntegrityCheck(org.jabref.logic.integrity.IntegrityCheck) IntegrityMessage(org.jabref.logic.integrity.IntegrityMessage) RowFilter(javax.swing.RowFilter) TableRowSorter(javax.swing.table.TableRowSorter) JScrollPane(javax.swing.JScrollPane) FormLayout(com.jgoodies.forms.layout.FormLayout) FormBuilder(com.jgoodies.forms.builder.FormBuilder) ListSelectionModel(javax.swing.ListSelectionModel) JPopupMenu(javax.swing.JPopupMenu) JCheckBoxMenuItem(javax.swing.JCheckBoxMenuItem) JTable(javax.swing.JTable) AbstractTableModel(javax.swing.table.AbstractTableModel) AbstractTableModel(javax.swing.table.AbstractTableModel) TableModel(javax.swing.table.TableModel) JDialog(javax.swing.JDialog)

Example 24 with ListSelectionModel

use of javax.swing.ListSelectionModel in project jabref by JabRef.

the class BasicAction method initRawPanel.

// Panel with text import functionality
private void initRawPanel() {
    rawPanel.setLayout(new BorderLayout());
    // Textarea
    textPane.setEditable(false);
    document = textPane.getStyledDocument();
    addStylesToDocument();
    try {
        document.insertString(0, "", document.getStyle("regular"));
    } catch (BadLocationException ex) {
        LOGGER.warn("Problem setting style", ex);
    }
    OverlayPanel testPanel = new OverlayPanel(textPane, Localization.lang("paste text here"));
    testPanel.setPreferredSize(new Dimension(450, 255));
    testPanel.setMaximumSize(new Dimension(450, Integer.MAX_VALUE));
    // Setup fields (required to be done before setting up popup menu)
    fieldList = new JList<>(getAllFields());
    fieldList.setCellRenderer(new SimpleCellRenderer(fieldList.getFont()));
    ListSelectionModel listSelectionModel = fieldList.getSelectionModel();
    listSelectionModel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    listSelectionModel.addListSelectionListener(new FieldListSelectionHandler());
    fieldList.addMouseListener(new FieldListMouseListener());
    // After the call to getAllFields
    initPopupMenuAndToolbar();
    //Add listener to components that can bring up popup menus.
    MouseListener popupListener = new PopupListener(inputMenu);
    textPane.addMouseListener(popupListener);
    testPanel.addMouseListener(popupListener);
    JPanel leftPanel = new JPanel(new BorderLayout());
    leftPanel.add(toolBar, BorderLayout.NORTH);
    leftPanel.add(testPanel, BorderLayout.CENTER);
    JPanel inputPanel = setUpFieldListPanel();
    // parse with FreeCite button
    parseWithFreeCiteButton.addActionListener(event -> {
        if (parseWithFreeCiteAndAddEntries()) {
            okPressed = false;
            dispose();
        }
    });
    rawPanel.add(leftPanel, BorderLayout.CENTER);
    rawPanel.add(inputPanel, BorderLayout.EAST);
    JLabel desc = new JLabel("<html><h3>" + Localization.lang("Plain text import") + "</h3><p>" + Localization.lang("This is a simple copy and paste dialog. First load or paste some text into " + "the text input area.<br>After that, you can mark text and assign it to a BibTeX field.") + "</p></html>");
    desc.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
    rawPanel.add(desc, BorderLayout.SOUTH);
}
Also used : JPanel(javax.swing.JPanel) ListSelectionModel(javax.swing.ListSelectionModel) JLabel(javax.swing.JLabel) Dimension(java.awt.Dimension) OverlayPanel(org.jabref.gui.util.component.OverlayPanel) MouseListener(java.awt.event.MouseListener) BorderLayout(java.awt.BorderLayout) BadLocationException(javax.swing.text.BadLocationException)

Example 25 with ListSelectionModel

use of javax.swing.ListSelectionModel in project knime-core by knime.

the class AbstractTablePanel method highlightRow.

/**
 * Highlights the row on the given index
 *
 * @param index index of the row to highlight
 */
private void highlightRow(final int index) {
    if (index > -1) {
        final ListSelectionModel selectionModel = getTable().getSelectionModel();
        if (selectionModel != null) {
            // select the fresh added rows
            selectionModel.setSelectionInterval(index, index);
            // scroll first selected row into view
            getTable().scrollRectToVisible(new Rectangle(getTable().getCellRect(index, 0, true)));
        }
    }
}
Also used : Rectangle(java.awt.Rectangle) ListSelectionModel(javax.swing.ListSelectionModel)

Aggregations

ListSelectionModel (javax.swing.ListSelectionModel)31 DefaultListSelectionModel (javax.swing.DefaultListSelectionModel)11 JTable (javax.swing.JTable)9 Dimension (java.awt.Dimension)7 JScrollPane (javax.swing.JScrollPane)7 BorderLayout (java.awt.BorderLayout)5 JButton (javax.swing.JButton)5 Point (java.awt.Point)4 Rectangle (java.awt.Rectangle)4 JLabel (javax.swing.JLabel)4 JPanel (javax.swing.JPanel)4 Color (java.awt.Color)3 Insets (java.awt.Insets)3 Component (java.awt.Component)2 FlowLayout (java.awt.FlowLayout)2 ActionEvent (java.awt.event.ActionEvent)2 ActionListener (java.awt.event.ActionListener)2 MouseEvent (java.awt.event.MouseEvent)2 ArrayList (java.util.ArrayList)2 ImageIcon (javax.swing.ImageIcon)2