Project

General

Profile

« Previous | Next » 

Revision 804fe7cc

Added by Patrick Plitzner almost 7 years ago

ref #6806 remove buttons from FeatureTreeEditorComposite

View differences:

eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/FeatureTreeEditor.java
11 11

  
12 12
import java.util.ArrayList;
13 13
import java.util.Arrays;
14
import java.util.Collection;
15 14
import java.util.HashMap;
16 15
import java.util.List;
17 16
import java.util.Map;
......
20 19
import javax.annotation.PreDestroy;
21 20
import javax.inject.Inject;
22 21

  
23
import org.eclipse.core.runtime.IStatus;
24 22
import org.eclipse.e4.ui.di.Focus;
25 23
import org.eclipse.e4.ui.di.Persist;
26 24
import org.eclipse.e4.ui.model.application.ui.MDirtyable;
27 25
import org.eclipse.e4.ui.services.EMenuService;
28 26
import org.eclipse.e4.ui.workbench.modeling.ESelectionService;
29 27
import org.eclipse.jface.viewers.ISelectionChangedListener;
30
import org.eclipse.jface.viewers.IStructuredSelection;
31 28
import org.eclipse.jface.viewers.SelectionChangedEvent;
32 29
import org.eclipse.jface.viewers.TreeViewer;
33
import org.eclipse.jface.wizard.WizardDialog;
34 30
import org.eclipse.swt.SWT;
35 31
import org.eclipse.swt.events.ModifyEvent;
36 32
import org.eclipse.swt.events.ModifyListener;
......
39 35
import org.eclipse.swt.widgets.Composite;
40 36

  
41 37
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
42
import eu.etaxonomy.cdm.api.service.IFeatureNodeService;
43 38
import eu.etaxonomy.cdm.api.service.IFeatureTreeService;
44
import eu.etaxonomy.cdm.api.service.config.FeatureNodeDeletionConfigurator;
45
import eu.etaxonomy.cdm.model.description.Feature;
46 39
import eu.etaxonomy.cdm.model.description.FeatureNode;
47 40
import eu.etaxonomy.cdm.model.description.FeatureTree;
48
import eu.etaxonomy.taxeditor.featuretree.AvailableFeaturesWizard;
49 41
import eu.etaxonomy.taxeditor.model.AbstractUtility;
50 42
import eu.etaxonomy.taxeditor.model.MessagingUtils;
51 43
import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
......
111 103
                            composite.setSelectedTree(tree, FeatureTreeEditor.this);
112 104
                        }
113 105
                    }
114
                }, new AddButtonListener(), new RemoveSelectionListener(), new FeatureTreeExportListener(composite.getDisplay().getActiveShell(), composite));
106
                });
115 107

  
116 108
        //create context menu
117 109
        menuService.registerContextMenu(composite.getViewer().getControl(), "eu.etaxonomy.taxeditor.store.popupmenu.featureTreeEditor");
......
139 131
	/** {@inheritDoc} */
140 132
	@Override
141 133
	public void selectionChanged(SelectionChangedEvent event) {
142
		IStructuredSelection selection = (IStructuredSelection) event
143
				.getSelection();
144

  
145
		composite.getBtnAdd().setEnabled(selection.size() <= 1);
146
		composite.getBtnRemove().setEnabled(selection.size() > 0);
147 134
		//propagate selection
148 135
		selService.setSelection(AbstractUtility.getElementsFromSelectionChangedEvent(event));
149 136
	}
......
221 208
        return root;
222 209
    }
223 210

  
224
	private class AddButtonListener extends SelectionAdapter {
225
		@Override
226
		public void widgetSelected(SelectionEvent e) {
227
			AvailableFeaturesWizard wizard = new AvailableFeaturesWizard();
228
			WizardDialog dialog = new WizardDialog(e.widget.getDisplay().getActiveShell(), wizard);
229

  
230
			if (dialog.open() == IStatus.OK) {
231
                FeatureNode parent = ((FeatureTree) composite.getViewer().getInput()).getRoot();
232
                Collection<Feature> additionalFeatures = wizard.getAdditionalFeatures();
233
                for (Feature feature : additionalFeatures) {
234
                    if(!getSelectedFeatureTree().getDistinctFeatures().contains(feature)){
235
                        CdmStore.getService(IFeatureNodeService.class).addChildFeatureNode(parent.getUuid(), feature.getUuid());
236
                    }
237
				}
238
				setDirty(true);
239
				composite.getViewer().refresh();
240
				composite.getViewer().expandToLevel(parent, 1);
241
			}
242
		}
243

  
244
	}
245

  
246
	private class RemoveSelectionListener extends SelectionAdapter {
247
		@Override
248
		public void widgetSelected(SelectionEvent e) {
249
			IStructuredSelection selection = (IStructuredSelection) composite.getViewer()
250
					.getSelection();
251

  
252
			for (Object selectedObject : selection.toArray()) {
253
				FeatureNode featureNode = (FeatureNode) selectedObject;
254
				CdmStore.getService(IFeatureNodeService.class).deleteFeatureNode(featureNode.getUuid(), new FeatureNodeDeletionConfigurator());
255

  
256
			}
257
			setDirty(true);
258
			composite.getViewer().refresh();
259
		}
260
	}
261

  
262 211
}

Also available in: Unified diff