Search in sources :

Example 1 with AttributeRegistryElement

use of org.freeplane.features.attribute.AttributeRegistryElement in project freeplane by freeplane.

the class MAttributeController method performRegistryAttributeValue.

@Override
public void performRegistryAttributeValue(final String name, final String value, boolean manual) {
    if (name.equals("")) {
        return;
    }
    final MapModel map = Controller.getCurrentModeController().getController().getMap();
    final AttributeRegistry attributeRegistry = AttributeRegistry.getRegistry(map);
    try {
        final AttributeRegistryElement element = attributeRegistry.getElement(name);
        if (element.getValues().contains(value)) {
            return;
        }
        final IActor actor = new RegistryAttributeValueActor(element, value, manual);
        Controller.getCurrentModeController().execute(actor, map);
        return;
    } catch (final NoSuchElementException ex) {
        final IActor nameActor = new RegistryAttributeActor(name, true, false, attributeRegistry, map);
        Controller.getCurrentModeController().execute(nameActor, map);
        final AttributeRegistryElement element = attributeRegistry.getElement(name);
        final IActor valueActor = new RegistryAttributeValueActor(element, value, false);
        Controller.getCurrentModeController().execute(valueActor, map);
    }
}
Also used : AttributeRegistry(org.freeplane.features.attribute.AttributeRegistry) AttributeRegistryElement(org.freeplane.features.attribute.AttributeRegistryElement) IActor(org.freeplane.core.undo.IActor) MapModel(org.freeplane.features.map.MapModel) NoSuchElementException(java.util.NoSuchElementException)

Example 2 with AttributeRegistryElement

use of org.freeplane.features.attribute.AttributeRegistryElement in project freeplane by freeplane.

the class MAttributeController method performSetValueAt.

@Override
public void performSetValueAt(final NodeAttributeTableModel model, final Object o, final int row, final int col) {
    final Attribute attribute = model.getAttribute(row);
    final MapModel map = model.getNode().getMap();
    final AttributeRegistry registry = AttributeRegistry.getRegistry(map);
    switch(col) {
        case 0:
            {
                final String name = o.toString().trim();
                final String oldName = attribute.getName();
                if (oldName.equals(name)) {
                    return;
                }
                final IActor nameActor = new SetAttributeNameActor(model, name, oldName, row);
                Controller.getCurrentModeController().execute(nameActor, map);
                try {
                    final AttributeRegistryElement element = registry.getElement(name);
                    final String value = model.getValueAt(row, 1).toString();
                    final int index = element.getValues().getIndexOf(value);
                    if (index == -1) {
                        final IActor valueActor = new SetAttributeValueActor(model, row, element.getValues().firstElement());
                        Controller.getCurrentModeController().execute(valueActor, map);
                    }
                } catch (final NoSuchElementException ex) {
                    final IActor registryActor = new RegistryAttributeActor(name, false, false, registry, map);
                    Controller.getCurrentModeController().execute(registryActor, map);
                }
                break;
            }
        case 1:
            {
                if (attribute.getValue().equals(o)) {
                    return;
                }
                final IActor actor = new SetAttributeValueActor(model, row, o);
                Controller.getCurrentModeController().execute(actor, map);
                final String name = model.getValueAt(row, 0).toString();
                final AttributeRegistryElement element = registry.getElement(name);
                final int index = element.getValues().getIndexOf(o);
                if (index == -1) {
                    final IActor registryActor = new RegistryAttributeValueActor(element, o, false);
                    Controller.getCurrentModeController().execute(registryActor, map);
                }
                break;
            }
    }
}
Also used : Attribute(org.freeplane.features.attribute.Attribute) AttributeRegistry(org.freeplane.features.attribute.AttributeRegistry) AttributeRegistryElement(org.freeplane.features.attribute.AttributeRegistryElement) IActor(org.freeplane.core.undo.IActor) MapModel(org.freeplane.features.map.MapModel) NoSuchElementException(java.util.NoSuchElementException)

Example 3 with AttributeRegistryElement

use of org.freeplane.features.attribute.AttributeRegistryElement in project freeplane by freeplane.

the class AddAttributeAction method selectedAttributeChanged.

protected void selectedAttributeChanged(final Object selectedAttributeName, final JComboBox values) {
    final MapModel map = Controller.getCurrentController().getMap();
    final AttributeRegistry attributes = AttributeRegistry.getRegistry(map);
    try {
        final AttributeRegistryElement element = attributes.getElement(selectedAttributeName.toString());
        final ComboBoxModel selectedValues = element.getValues();
        values.setModel(new ClonedComboBoxModel(selectedValues));
        try {
            final Object firstValue = selectedValues.getElementAt(0);
            values.setSelectedItem(firstValue);
        } catch (final ArrayIndexOutOfBoundsException ex) {
        }
        values.setEditable(!element.isRestricted());
    } catch (final NoSuchElementException ex) {
        values.setEditable(!selectedAttributeName.toString().equals(""));
    }
}
Also used : AttributeRegistry(org.freeplane.features.attribute.AttributeRegistry) AttributeRegistryElement(org.freeplane.features.attribute.AttributeRegistryElement) MapModel(org.freeplane.features.map.MapModel) ClonedComboBoxModel(org.freeplane.features.attribute.mindmapmode.AssignAttributeDialog.ClonedComboBoxModel) ClonedComboBoxModel(org.freeplane.features.attribute.mindmapmode.AssignAttributeDialog.ClonedComboBoxModel) ComboBoxModel(javax.swing.ComboBoxModel) NoSuchElementException(java.util.NoSuchElementException)

Example 4 with AttributeRegistryElement

use of org.freeplane.features.attribute.AttributeRegistryElement in project freeplane by freeplane.

the class AssignAttributeDialog method selectedAttributeChanged.

private void selectedAttributeChanged(final Object selectedAttributeName, final JComboBox values) {
    final MapModel map = Controller.getCurrentController().getMap();
    final AttributeRegistry attributes = AttributeRegistry.getRegistry(map);
    try {
        final AttributeRegistryElement element = attributes.getElement(selectedAttributeName.toString());
        final ComboBoxModel selectedValues = element.getValues();
        values.setModel(new ClonedComboBoxModel(selectedValues));
        try {
            final Object firstValue = selectedValues.getElementAt(0);
            values.setSelectedItem(firstValue);
        } catch (final ArrayIndexOutOfBoundsException ex) {
        }
        values.setEditable(!element.isRestricted());
    } catch (final NoSuchElementException ex) {
        values.setEditable(!selectedAttributeName.toString().equals(""));
    }
}
Also used : AttributeRegistry(org.freeplane.features.attribute.AttributeRegistry) AttributeRegistryElement(org.freeplane.features.attribute.AttributeRegistryElement) MapModel(org.freeplane.features.map.MapModel) DefaultComboBoxModel(javax.swing.DefaultComboBoxModel) ComboBoxModel(javax.swing.ComboBoxModel) NoSuchElementException(java.util.NoSuchElementException)

Example 5 with AttributeRegistryElement

use of org.freeplane.features.attribute.AttributeRegistryElement in project freeplane by freeplane.

the class ImportAttributesDialog method createAttributeSubTrees.

private void createAttributeSubTrees(final DefaultMutableTreeNode mapInfo, final AttributeRegistry attributes) {
    if (attributes == null) {
        return;
    }
    for (int i = 0; i < attributes.size(); i++) {
        final AttributeRegistryElement element = attributes.getElement(i);
        final TreeNodeInfo treeNodeInfo = new AttributeTreeNodeInfo(element.getKey().toString(), element.isRestricted());
        final DefaultMutableTreeNode attributeInfo = new DefaultMutableTreeNode(treeNodeInfo);
        createValueSubTrees(attributeInfo, element, currentAttributes);
        if (attributeInfo.getChildCount() != 0) {
            mapInfo.add(attributeInfo);
        }
    }
}
Also used : DefaultMutableTreeNode(javax.swing.tree.DefaultMutableTreeNode) AttributeRegistryElement(org.freeplane.features.attribute.AttributeRegistryElement)

Aggregations

AttributeRegistryElement (org.freeplane.features.attribute.AttributeRegistryElement)7 AttributeRegistry (org.freeplane.features.attribute.AttributeRegistry)6 MapModel (org.freeplane.features.map.MapModel)6 NoSuchElementException (java.util.NoSuchElementException)5 IActor (org.freeplane.core.undo.IActor)4 ComboBoxModel (javax.swing.ComboBoxModel)2 DefaultComboBoxModel (javax.swing.DefaultComboBoxModel)1 DefaultMutableTreeNode (javax.swing.tree.DefaultMutableTreeNode)1 SortedComboBoxModel (org.freeplane.core.util.collection.SortedComboBoxModel)1 Attribute (org.freeplane.features.attribute.Attribute)1 ClonedComboBoxModel (org.freeplane.features.attribute.mindmapmode.AssignAttributeDialog.ClonedComboBoxModel)1 NodeModel (org.freeplane.features.map.NodeModel)1 ModeController (org.freeplane.features.mode.ModeController)1