--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2017 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.editor.workingSet;
+
+import java.util.Collections;
+import java.util.UUID;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import javax.inject.Named;
+
+import org.eclipse.e4.ui.di.Focus;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.TreeSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.SashForm;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+
+import eu.etaxonomy.cdm.api.service.IFeatureTreeService;
+import eu.etaxonomy.cdm.model.description.Character;
+import eu.etaxonomy.cdm.model.description.FeatureNode;
+import eu.etaxonomy.cdm.model.description.FeatureTree;
+import eu.etaxonomy.taxeditor.featuretree.FeatureNodeTransfer;
+import eu.etaxonomy.taxeditor.featuretree.FeatureTreeContentProvider;
+import eu.etaxonomy.taxeditor.featuretree.FeatureTreeLabelProvider;
+import eu.etaxonomy.taxeditor.featuretree.e4.FeatureTreeEditor;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author pplitzner
+ * @date 24.05.2017
+ *
+ */
+public class CharacterEditor {
+
+
+ private TreeViewer treeViewerCharacters;
+ private TreeViewer treeViewerProperties;
+ private TreeViewer treeViewerStructures;
+ private FeatureTreeEditor editor;
+ private final FormToolkit formToolkit = new FormToolkit(Display.getDefault());
+ private Button btnAddCharacter;
+
+ public CharacterEditor() {
+ }
+
+ /**
+ * Create contents of the view part.
+ */
+ @PostConstruct
+ public void createControls(Composite parent, @Named(IServiceConstants.ACTIVE_SHELL)Shell shell) {
+ parent.setLayout(new GridLayout(1, false));
+
+ SashForm sashForm = new SashForm(parent, SWT.NONE);
+ sashForm.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
+ formToolkit.adapt(sashForm);
+ formToolkit.paintBordersFor(sashForm);
+
+ Composite composite = new Composite(sashForm, SWT.NONE);
+ formToolkit.adapt(composite);
+ formToolkit.paintBordersFor(composite);
+ composite.setLayout(new GridLayout(1, false));
+
+ Label lblNewLabel = new Label(composite, SWT.NONE);
+ lblNewLabel.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false, 1, 1));
+ formToolkit.adapt(lblNewLabel, true, true);
+ lblNewLabel.setText("Structures");
+
+ treeViewerStructures = new TreeViewer(composite, SWT.BORDER);
+ Tree tree = treeViewerStructures.getTree();
+ tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
+
+ Composite composite_1 = new Composite(sashForm, SWT.NONE);
+ formToolkit.adapt(composite_1);
+ formToolkit.paintBordersFor(composite_1);
+ composite_1.setLayout(new GridLayout(1, false));
+
+ Label lblNewLabel_1 = new Label(composite_1, SWT.NONE);
+ lblNewLabel_1.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false, 1, 1));
+ formToolkit.adapt(lblNewLabel_1, true, true);
+ lblNewLabel_1.setText("Properties");
+
+ treeViewerProperties = new TreeViewer(composite_1, SWT.BORDER);
+ Tree tree_1 = treeViewerProperties.getTree();
+ tree_1.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
+
+ Composite composite_2 = new Composite(sashForm, SWT.NONE);
+ formToolkit.adapt(composite_2);
+ formToolkit.paintBordersFor(composite_2);
+ composite_2.setLayout(new GridLayout(1, false));
+
+ btnAddCharacter = new Button(composite_2, SWT.NONE);
+ btnAddCharacter.setText(">>");
+ btnAddCharacter.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, true, true, 1, 1));
+ formToolkit.adapt(btnAddCharacter, true, true);
+
+
+ Composite composite_3 = new Composite(sashForm, SWT.NONE);
+ formToolkit.adapt(composite_3);
+ formToolkit.paintBordersFor(composite_3);
+ composite_3.setLayout(new GridLayout(1, false));
+
+ editor = new FeatureTreeEditor(shell);
+ editor.createControl(composite_3, shell);
+
+ // treeViewerCharacters = new TreeViewer(sashForm, SWT.BORDER);
+ sashForm.setWeights(new int[] {3, 3, 1, 3});
+
+ init();
+ }
+
+ private void init(){
+ int dndOperations = DND.DROP_COPY | DND.DROP_MOVE;
+ Transfer[] transfers = new Transfer[] { FeatureNodeTransfer.getInstance() };
+
+ FeatureTree structureFeatureTree = CdmStore.getService(IFeatureTreeService.class).load(UUID.fromString("3a953dd1-2b5f-482f-9a33-664ee7ef6c68"));
+ treeViewerStructures.setContentProvider(new FeatureTreeContentProvider());
+ treeViewerStructures.setLabelProvider(new FeatureTreeLabelProvider());
+ treeViewerStructures.setInput(structureFeatureTree);
+
+ FeatureTree propertiesFeatureTree = CdmStore.getService(IFeatureTreeService.class).load(UUID.fromString("e283bbf5-bda3-449d-98de-3601ac8a8bbd"));
+ treeViewerProperties.setContentProvider(new FeatureTreeContentProvider());
+ treeViewerProperties.setLabelProvider(new FeatureTreeLabelProvider());
+ treeViewerProperties.addDragSupport(dndOperations, transfers, new CharacterDragListener(treeViewerStructures, treeViewerProperties));
+ treeViewerProperties.setInput(propertiesFeatureTree);
+
+ btnAddCharacter.addSelectionListener(new SelectionAdapter() {
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ ISelection structureTreeSelection = treeViewerStructures.getSelection();
+ ISelection propertyTreeSelection = treeViewerProperties.getSelection();
+ if(structureTreeSelection==null || propertyTreeSelection==null || editor.getSelectedFeatureTree()==null){
+ MessagingUtils.warningDialog("Cannot perform action", CharacterEditor.this,
+ "You have to select a structure, a property and a feature tree to perform this action.");
+ return;
+ }
+ FeatureNode structureNode = (FeatureNode) ((TreeSelection)structureTreeSelection).getFirstElement();
+ FeatureNode propertyNode = (FeatureNode) ((TreeSelection)propertyTreeSelection).getFirstElement();
+ String label = structureNode.getFeature().toString()+" "+propertyNode.getFeature().toString();
+ Character character = Character.NewInstance(structureNode, propertyNode, null, label, label);
+ //TODO session handling
+// CdmStore.getService(ITermService.class).save(character);
+ editor.addFeatures(Collections.singleton(character));
+ }
+ });
+
+// treeViewerCharacters.setContentProvider(new FeatureTreeContentProvider());
+// treeViewerCharacters.setLabelProvider(new FeatureTreeLabelProvider());
+// treeViewerCharacters.addDropSupport(dndOperations, transfers, new CharacterDropAdapter(treeViewerCharacters));
+ }
+
+ @PreDestroy
+ public void dispose() {
+ }
+
+ @Focus
+ public void setFocus() {
+ }
+
+ public TreeViewer getTreeViewerCharacters() {
+ return treeViewerCharacters;
+ }
+ public TreeViewer getTreeViewerProperties() {
+ return treeViewerProperties;
+ }
+ public TreeViewer getTreeViewerStructures() {
+ return treeViewerStructures;
+ }
+}
+++ /dev/null
-// $Id$
-/**
-* Copyright (C) 2017 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-package eu.etaxonomy.taxeditor.editor.workingSet;
-
-import java.util.UUID;
-
-import javax.annotation.PostConstruct;
-import javax.annotation.PreDestroy;
-import javax.inject.Named;
-
-import org.eclipse.e4.ui.di.Focus;
-import org.eclipse.e4.ui.services.IServiceConstants;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-import eu.etaxonomy.cdm.api.service.IFeatureTreeService;
-import eu.etaxonomy.cdm.model.description.FeatureTree;
-import eu.etaxonomy.taxeditor.featuretree.FeatureNodeTransfer;
-import eu.etaxonomy.taxeditor.featuretree.FeatureTreeContentProvider;
-import eu.etaxonomy.taxeditor.featuretree.FeatureTreeLabelProvider;
-import eu.etaxonomy.taxeditor.featuretree.e4.FeatureTreeEditor;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- * @author pplitzner
- * @date 24.05.2017
- *
- */
-public class FeatureTreeBuilderViewPart {
-
-
- private TreeViewer treeViewerCharacters;
- private TreeViewer treeViewerProperties;
- private TreeViewer treeViewerStructures;
- private FeatureTreeEditor editor;
- private final FormToolkit formToolkit = new FormToolkit(Display.getDefault());
-
- public FeatureTreeBuilderViewPart() {
- }
-
- /**
- * Create contents of the view part.
- */
- @PostConstruct
- public void createControls(Composite parent, @Named(IServiceConstants.ACTIVE_SHELL)Shell shell) {
- parent.setLayout(new GridLayout(1, false));
-
- SashForm sashForm = new SashForm(parent, SWT.NONE);
- sashForm.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
- formToolkit.adapt(sashForm);
- formToolkit.paintBordersFor(sashForm);
-
- treeViewerStructures = new TreeViewer(sashForm, SWT.BORDER);
-
- treeViewerProperties = new TreeViewer(sashForm, SWT.BORDER);
-
-// editor = new FeatureTreeEditor(shell);
-// editor.createControl(sashForm, shell);
- treeViewerCharacters = new TreeViewer(sashForm, SWT.BORDER);
- sashForm.setWeights(new int[] {1, 1, 1});
-
- init();
- }
-
- private void init(){
- int dndOperations = DND.DROP_COPY | DND.DROP_MOVE;
- Transfer[] transfers = new Transfer[] { FeatureNodeTransfer.getInstance() };
-
- FeatureTree structureFeatureTree = CdmStore.getService(IFeatureTreeService.class).load(UUID.fromString("546e9c1e-d186-4e3b-838d-7e44586d1b39"));
- treeViewerStructures.setContentProvider(new FeatureTreeContentProvider());
- treeViewerStructures.setLabelProvider(new FeatureTreeLabelProvider());
- treeViewerStructures.setInput(structureFeatureTree);
-
- FeatureTree propertiesFeatureTree = CdmStore.getService(IFeatureTreeService.class).load(UUID.fromString("07543f00-1572-4ba8-b633-4fdb83fb32dd"));
- treeViewerProperties.setContentProvider(new FeatureTreeContentProvider());
- treeViewerProperties.setLabelProvider(new FeatureTreeLabelProvider());
- treeViewerProperties.addDragSupport(dndOperations, transfers, new CharacterDragListener(treeViewerStructures, treeViewerProperties));
- treeViewerProperties.setInput(propertiesFeatureTree);
-
- treeViewerCharacters.setContentProvider(new FeatureTreeContentProvider());
- treeViewerCharacters.setLabelProvider(new FeatureTreeLabelProvider());
- treeViewerCharacters.addDropSupport(dndOperations, transfers, new CharacterDropAdapter(treeViewerCharacters));
- }
-
- @PreDestroy
- public void dispose() {
- }
-
- @Focus
- public void setFocus() {
- }
-
- public TreeViewer getTreeViewerCharacters() {
- return treeViewerCharacters;
- }
- public TreeViewer getTreeViewerProperties() {
- return treeViewerProperties;
- }
- public TreeViewer getTreeViewerStructures() {
- return treeViewerStructures;
- }
-
-}