Search in sources :

Example 6 with SelectionEvent

use of com.ramussoft.gui.qualifier.table.event.SelectionEvent in project ramus by Vitaliy-Yakovchuk.

the class ChartsView method createComponent.

@Override
public JComponent createComponent() {
    Engine engine = framework.getEngine();
    AccessRules accessRules = framework.getAccessRules();
    component = new RowTreeTableComponent(engine, ChartPlugin.getCharts(engine), accessRules, new RowRootCreater(), new Attribute[] { StandardAttributesPlugin.getAttributeNameAttribute(engine) }, framework);
    component.getTable().addSelectionListener(new SelectionListener() {

        @Override
        public void changeSelection(SelectionEvent event) {
            TreeTableNode selectedNode = component.getTable().getSelectedNode();
            if (selectedNode == null)
                chartPrefernecesAction.setEnabled(false);
            else {
                Row row = selectedNode.getRow();
                chartPrefernecesAction.setEnabled(row != null);
            }
            openChartAction.setEnabled(chartPrefernecesAction.isEnabled());
            deleteChartAction.setEnabled(chartPrefernecesAction.isEnabled());
        }
    });
    table = component.getTable();
    table.addMouseListener(new MouseAdapter() {

        @Override
        public void mouseClicked(MouseEvent e) {
            if (e.getButton() == MouseEvent.BUTTON1) {
                if ((e.getClickCount() % 2 == 0) && (e.getClickCount() > 0)) {
                    openDiagram();
                } else {
                    if ((e.getClickCount() == 1) && (System.currentTimeMillis() - lastClickTime < EDIT_NAME_CLICK_DELAY) && (Arrays.equals(lastSelectedRows, table.getSelectedRows()))) {
                        if (!table.isEditing()) {
                            editTableField();
                        }
                    } else {
                        lastClickTime = System.currentTimeMillis();
                        lastSelectedRows = table.getSelectedRows();
                    }
                }
            }
        }
    });
    table.setEditIfNullEvent(false);
    table.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_F2, 0), "EditCell");
    table.getActionMap().put("EditCell", new AbstractAction() {

        /**
         */
        private static final long serialVersionUID = 3229634866196074563L;

        @Override
        public void actionPerformed(ActionEvent e) {
            if ((table.getSelectedRow() >= 0) && (table.getSelectedColumn() >= 0))
                editTableField();
        }
    });
    table.setExportRows(true);
    return component;
}
Also used : MouseEvent(java.awt.event.MouseEvent) TreeTableNode(com.ramussoft.gui.qualifier.table.TreeTableNode) Attribute(com.ramussoft.common.Attribute) RowTreeTableComponent(com.ramussoft.gui.qualifier.table.RowTreeTableComponent) ActionEvent(java.awt.event.ActionEvent) MouseAdapter(java.awt.event.MouseAdapter) SelectionEvent(com.ramussoft.gui.qualifier.table.event.SelectionEvent) AccessRules(com.ramussoft.common.AccessRules) RowRootCreater(com.ramussoft.gui.qualifier.table.RowRootCreater) Row(com.ramussoft.database.common.Row) AbstractAction(javax.swing.AbstractAction) Engine(com.ramussoft.common.Engine) SelectionListener(com.ramussoft.gui.qualifier.table.event.SelectionListener)

Example 7 with SelectionEvent

use of com.ramussoft.gui.qualifier.table.event.SelectionEvent in project ramus by Vitaliy-Yakovchuk.

the class ChartSetsView method createComponent.

@Override
public JComponent createComponent() {
    Engine engine = framework.getEngine();
    AccessRules accessRules = framework.getAccessRules();
    component = new RowTreeTableComponent(engine, ChartPlugin.getChartSets(engine), accessRules, new RowRootCreater(), new Attribute[] { StandardAttributesPlugin.getAttributeNameAttribute(engine) }, framework);
    table = component.getTable();
    table.addMouseListener(new MouseAdapter() {

        @Override
        public void mouseClicked(MouseEvent e) {
            if (e.getButton() == MouseEvent.BUTTON1) {
                if ((e.getClickCount() % 2 == 0) && (e.getClickCount() > 0)) {
                    openChartSet();
                } else {
                    if ((e.getClickCount() == 1) && (System.currentTimeMillis() - lastClickTime < EDIT_NAME_CLICK_DELAY) && (Arrays.equals(lastSelectedRows, table.getSelectedRows()))) {
                        if (!table.isEditing()) {
                            editTableField();
                        }
                    } else {
                        lastClickTime = System.currentTimeMillis();
                        lastSelectedRows = table.getSelectedRows();
                    }
                }
            }
        }
    });
    table.addSelectionListener(new SelectionListener() {

        @Override
        public void changeSelection(SelectionEvent event) {
            TreeTableNode selectedNode = component.getTable().getSelectedNode();
            if (selectedNode == null)
                openChartSetAction.setEnabled(false);
            else {
                Row row = selectedNode.getRow();
                openChartSetAction.setEnabled(row != null);
            }
            deleteChartSetAction.setEnabled(openChartSetAction.isEnabled());
        }
    });
    table.setEditIfNullEvent(false);
    table.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_F2, 0), "EditCell");
    table.getActionMap().put("EditCell", new AbstractAction() {

        /**
         */
        private static final long serialVersionUID = 3229634866196074563L;

        @Override
        public void actionPerformed(ActionEvent e) {
            if ((table.getSelectedRow() >= 0) && (table.getSelectedColumn() >= 0))
                editTableField();
        }
    });
    return component;
}
Also used : MouseEvent(java.awt.event.MouseEvent) TreeTableNode(com.ramussoft.gui.qualifier.table.TreeTableNode) Attribute(com.ramussoft.common.Attribute) RowTreeTableComponent(com.ramussoft.gui.qualifier.table.RowTreeTableComponent) ActionEvent(java.awt.event.ActionEvent) MouseAdapter(java.awt.event.MouseAdapter) SelectionEvent(com.ramussoft.gui.qualifier.table.event.SelectionEvent) AccessRules(com.ramussoft.common.AccessRules) RowRootCreater(com.ramussoft.gui.qualifier.table.RowRootCreater) Row(com.ramussoft.database.common.Row) AbstractAction(javax.swing.AbstractAction) Engine(com.ramussoft.common.Engine) SelectionListener(com.ramussoft.gui.qualifier.table.event.SelectionListener)

Example 8 with SelectionEvent

use of com.ramussoft.gui.qualifier.table.event.SelectionEvent in project ramus by Vitaliy-Yakovchuk.

the class ElistTabView method createComponent.

@Override
public JComponent createComponent() {
    final Engine engine = framework.getEngine();
    AccessRules rules = framework.getAccessRules();
    ElementListPropertyPersistent p = (ElementListPropertyPersistent) engine.getAttribute(null, elementList);
    boolean addListener = q1 == null;
    q1 = engine.getQualifier(p.getQualifier1());
    q2 = engine.getQualifier(p.getQualifier2());
    readOnly = !((rules.canUpdateAttribute(q1.getId(), elementList.getId())) && (rules.canUpdateAttribute(q2.getId(), elementList.getId())));
    if (addListener) {
        engine.addElementAttributeListener(q1, leftAttributeListener);
        engine.addElementAttributeListener(q2, rightAttributeListener);
    }
    left = new ElistPanel(framework, engine, rules, q1, elementList) {

        @Override
        public String getPropertiesPrefix() {
            return "left" + elementList.getId();
        }

        @Override
        public void changeSelection(SelectionEvent event) {
            ElistTabView.this.changeSelection(this, event);
        }

        @Override
        public JComponent createComponent() {
            unique = null;
            if (getComponent() != null) {
                left.clearSelection();
                left.setSelectType(SelectType.RADIO);
                right.clearSelection();
                right.setSelectType(SelectType.RADIO);
            }
            JComponent component2 = super.createComponent();
            getComponent().getPane().getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener() {

                @Override
                public void adjustmentValueChanged(AdjustmentEvent e) {
                    comp.repaint();
                }
            });
            getComponent().getTable().getModel().addTableModelListener(modelListener);
            getComponent().getTable().getSelectionModel().addListSelectionListener(new ListSelectionListener() {

                @SuppressWarnings("unchecked")
                @Override
                public void valueChanged(ListSelectionEvent e) {
                    TreeTableNode node = left.getComponent().getTable().getSelectedNode();
                    if ((node != null) && (node.getRow() != null)) {
                        leftElement = node.getRow().getElement();
                        leftValue = (List<ElementListPersistent>) engine.getAttribute(leftElement, elementList);
                        if (unique == null)
                            rightValue = null;
                    } else
                        leftValue = null;
                    comp.repaint();
                }
            });
            return component2;
        }

        @Override
        public void setSelectType(SelectType selectType) {
            if ((!readOnly) || (selectType.equals(SelectType.NONE)))
                super.setSelectType(selectType);
        }
    };
    right = new ElistPanel(framework, engine, rules, q2, elementList) {

        @Override
        public String getPropertiesPrefix() {
            return "right" + elementList.getId();
        }

        @Override
        public void changeSelection(SelectionEvent event) {
            ElistTabView.this.changeSelection(this, event);
        }

        @Override
        public JComponent createComponent() {
            unique = null;
            if (getComponent() != null) {
                left.clearSelection();
                left.setSelectType(SelectType.RADIO);
                right.clearSelection();
                right.setSelectType(SelectType.RADIO);
            }
            JComponent component2 = super.createComponent();
            getComponent().getPane().getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener() {

                @Override
                public void adjustmentValueChanged(AdjustmentEvent e) {
                    comp.repaint();
                }
            });
            getComponent().getTable().getModel().addTableModelListener(modelListener);
            getComponent().getTable().getSelectionModel().addListSelectionListener(new ListSelectionListener() {

                @SuppressWarnings("unchecked")
                @Override
                public void valueChanged(ListSelectionEvent e) {
                    TreeTableNode node = right.getComponent().getTable().getSelectedNode();
                    if ((node != null) && (node.getRow() != null)) {
                        rightElement = node.getRow().getElement();
                        rightValue = (List<ElementListPersistent>) engine.getAttribute(rightElement, elementList);
                        if (unique == null)
                            leftValue = null;
                    } else
                        rightValue = null;
                    comp.repaint();
                }
            });
            return component2;
        }

        @Override
        public void setSelectType(SelectType selectType) {
            if ((!readOnly) || (selectType.equals(SelectType.NONE)))
                super.setSelectType(selectType);
        }
    };
    JSplitPane pane1 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
    pane1.setRightComponent(rightContainer);
    comp.setBackground(Color.white);
    pane1.setLeftComponent(comp);
    JSplitPane pane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
    pane.setLeftComponent(leftContainer);
    Properties properties = engine.getProperties(getProperiesName());
    revert = Options.getBoolean("REVERT", false, properties);
    revertAction.putValue(Action.SELECTED_KEY, revert);
    addPanels();
    JPanel panel = new JPanel(new BorderLayout());
    panel.add(pane1, BorderLayout.CENTER);
    pane.setRightComponent(panel);
    component = new JPanel(new BorderLayout());
    component.add(pane, BorderLayout.CENTER);
    Options.loadOptions(component, properties);
    if (readOnly) {
        left.setSelectType(SelectType.NONE);
        right.setSelectType(SelectType.NONE);
    }
    return component;
}
Also used : JPanel(javax.swing.JPanel) TreeTableNode(com.ramussoft.gui.qualifier.table.TreeTableNode) ElementListPersistent(com.ramussoft.core.attribute.simple.ElementListPersistent) AdjustmentEvent(java.awt.event.AdjustmentEvent) ElementListPropertyPersistent(com.ramussoft.core.attribute.simple.ElementListPropertyPersistent) JComponent(javax.swing.JComponent) ListSelectionEvent(javax.swing.event.ListSelectionEvent) SelectType(com.ramussoft.gui.qualifier.table.SelectType) Properties(java.util.Properties) ListSelectionListener(javax.swing.event.ListSelectionListener) BorderLayout(java.awt.BorderLayout) SelectionEvent(com.ramussoft.gui.qualifier.table.event.SelectionEvent) ListSelectionEvent(javax.swing.event.ListSelectionEvent) AdjustmentListener(java.awt.event.AdjustmentListener) AccessRules(com.ramussoft.common.AccessRules) JSplitPane(javax.swing.JSplitPane) Engine(com.ramussoft.common.Engine)

Example 9 with SelectionEvent

use of com.ramussoft.gui.qualifier.table.event.SelectionEvent in project ramus by Vitaliy-Yakovchuk.

the class RowTreeTable method changeSelection.

@Override
public void changeSelection(int rowIndex, int columnIndex, boolean toggle, boolean extend) {
    super.changeSelection(rowIndex, columnIndex, toggle, extend);
    SelectionEvent event = new SelectionEvent(null, false);
    for (SelectionListener listener : getSelectionListeners()) {
        listener.changeSelection(event);
    }
}
Also used : ListSelectionEvent(javax.swing.event.ListSelectionEvent) SelectionEvent(com.ramussoft.gui.qualifier.table.event.SelectionEvent) SelectionListener(com.ramussoft.gui.qualifier.table.event.SelectionListener)

Example 10 with SelectionEvent

use of com.ramussoft.gui.qualifier.table.event.SelectionEvent in project ramus by Vitaliy-Yakovchuk.

the class RowTreeTableModel method clearSelection.

public void clearSelection() {
    Set<Row> rows = selectedRows.keySet();
    SelectionEvent event = new SelectionEvent(rows.toArray(new Row[rows.size()]), false);
    selectedRows.clear();
    for (SelectionListener l : getSelectionListeners()) l.changeSelection(event);
}
Also used : SelectionEvent(com.ramussoft.gui.qualifier.table.event.SelectionEvent) Row(com.ramussoft.database.common.Row) SelectionListener(com.ramussoft.gui.qualifier.table.event.SelectionListener)

Aggregations

SelectionEvent (com.ramussoft.gui.qualifier.table.event.SelectionEvent)11 SelectionListener (com.ramussoft.gui.qualifier.table.event.SelectionListener)10 Row (com.ramussoft.database.common.Row)5 AbstractAction (javax.swing.AbstractAction)5 AccessRules (com.ramussoft.common.AccessRules)3 Attribute (com.ramussoft.common.Attribute)3 Engine (com.ramussoft.common.Engine)3 TreeTableNode (com.ramussoft.gui.qualifier.table.TreeTableNode)3 ActionEvent (java.awt.event.ActionEvent)3 JPanel (javax.swing.JPanel)3 ActionEvent (com.ramussoft.gui.common.event.ActionEvent)2 QualifierView (com.ramussoft.gui.qualifier.QualifierView)2 RowRootCreater (com.ramussoft.gui.qualifier.table.RowRootCreater)2 RowTreeTableComponent (com.ramussoft.gui.qualifier.table.RowTreeTableComponent)2 MouseAdapter (java.awt.event.MouseAdapter)2 MouseEvent (java.awt.event.MouseEvent)2 JComponent (javax.swing.JComponent)2 ListSelectionEvent (javax.swing.event.ListSelectionEvent)2 ElementListPersistent (com.ramussoft.core.attribute.simple.ElementListPersistent)1 ElementListPropertyPersistent (com.ramussoft.core.attribute.simple.ElementListPropertyPersistent)1