p2izing the editor
[taxeditor.git] / eclipseprojects / eu.etaxonomy.taxeditor / src / eu / etaxonomy / taxeditor / propertysheet / name / NameRelationsPropertyDescriptor.java
1 /**
2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
8 */
9
10 package eu.etaxonomy.taxeditor.propertysheet.name;
11
12 import java.util.Set;
13
14 import org.apache.log4j.Logger;
15 import org.eclipse.jface.viewers.CellEditor;
16 import org.eclipse.jface.viewers.DialogCellEditor;
17 import org.eclipse.swt.widgets.Composite;
18 import org.eclipse.swt.widgets.Control;
19 import org.eclipse.swt.widgets.Dialog;
20 import org.eclipse.ui.views.properties.PropertyDescriptor;
21
22 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
23 import eu.etaxonomy.taxeditor.actions.ui.OpenNameRelationsListWizardAction;
24
25 /**
26 * Property sheet descriptor that pops up a dialog window
27 * returning a set.
28 *
29 * @author p.ciardelli
30 * @created 19.05.2008
31 * @version 1.0
32 */
33 abstract public class NameRelationsPropertyDescriptor extends PropertyDescriptor {
34 private static final Logger logger = Logger
35 .getLogger(NameRelationsPropertyDescriptor.class);
36
37 private TaxonNameBase name;
38
39 public NameRelationsPropertyDescriptor(Object id, String displayName, TaxonNameBase name) {
40 super(id, displayName);
41 this.name = name;
42 }
43
44 public CellEditor createPropertyEditor(Composite parent) {
45 CellEditor editor = new DialogCellEditor(parent) {
46
47 @Override
48 protected Object openDialogBox(
49 Control cellEditorWindow) {
50
51 new OpenNameRelationsListWizardAction(name).run();
52
53 return new NameRelationsPropertySource(name, name.getNameRelations());
54 }
55
56 };
57 if (getValidator() != null) {
58 editor.setValidator(getValidator());
59 }
60 return editor;
61 }
62
63 abstract protected void saveNameRelations(Set set);
64 }