Project

General

Profile

Download (6.46 KB) Statistics
| Branch: | Tag: | Revision:
1
package eu.etaxonomy.taxeditor.editor.view.checklist.e4;
2

    
3
import java.util.SortedSet;
4

    
5
import org.apache.log4j.Logger;
6
import org.eclipse.jface.viewers.TableViewer;
7
import org.eclipse.jface.wizard.WizardDialog;
8
import org.eclipse.swt.SWT;
9
import org.eclipse.swt.events.SelectionAdapter;
10
import org.eclipse.swt.events.SelectionEvent;
11
import org.eclipse.swt.graphics.Point;
12
import org.eclipse.swt.graphics.Rectangle;
13
import org.eclipse.swt.widgets.Menu;
14
import org.eclipse.swt.widgets.MenuItem;
15
import org.eclipse.swt.widgets.Table;
16
import org.eclipse.swt.widgets.TableColumn;
17
import org.eclipse.swt.widgets.ToolItem;
18

    
19
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
20
import eu.etaxonomy.taxeditor.editor.l10n.Messages;
21
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
22
import eu.etaxonomy.taxeditor.preference.wizard.AvailableDistributionWizard;
23
import eu.etaxonomy.taxeditor.store.StoreUtil;
24

    
25
/**
26
 * Handles drop down menu selection. Available items are defined in the
27
 * enumeration SearchOption.
28
 *
29
 * @author n.hoffmann
30
 * @created Feb 2, 2010
31
 * @version 1.0
32
 */
33
public class ChecklistDropdownSelectionListenerE4 extends SelectionAdapter {
34

    
35
    private final Menu menu;
36
    private final ChecklistEditorE4 editor;
37
    private final SortedSet<DefinedTermBase> termSet;
38
    private Logger logger = Logger.getLogger(ChecklistDropdownSelectionListenerE4.class);
39

    
40
    public ChecklistDropdownSelectionListenerE4(ToolItem dropdown, ChecklistEditorE4 editor,
41
            SortedSet<DefinedTermBase> termSet) {
42
        this.editor = editor;
43
        this.termSet = termSet;
44
        menu = new Menu(dropdown.getParent().getShell());
45

    
46
        initialMenuItem();
47
    }
48

    
49
    // SearchOption option
50
    public void add(DefinedTermBase<DefinedTermBase> term) {
51
        MenuItem menuItem = new MenuItem(menu, SWT.CHECK);
52

    
53
           menuItem.setText(term.getTitleCache());
54

    
55
        if (PreferencesUtil.getBooleanValue(term.getUuid().toString())) {
56
            menuItem.setSelection(true);
57
        } else {
58
            menuItem.setSelection(false);
59
        }
60
        menuItem.addSelectionListener(new SelectionAdapter() {
61
            @Override
62
            public void widgetSelected(SelectionEvent event) {
63
                MenuItem selected = (MenuItem) event.widget;
64

    
65
                TableViewer viewer = (TableViewer) editor.getViewer();
66
                final Table table = viewer.getTable();
67
                // TODO make it selectable according to selection event
68
                TableColumn column = null;
69
                DefinedTermBase<DefinedTermBase> selectedTerm = null;
70

    
71
                Integer position = editor.getAreaPosition().get(term.getUuid());
72
                TableColumn[] columns = viewer.getTable().getColumns();
73
                column = columns[position];
74

    
75
                if (column != null && column.getWidth() == 0) {
76
                    // save column status if shown or not
77
                    if (term != null) {
78
                        PreferencesUtil.setBooleanValue(term.getUuid().toString(), true);
79
                    }
80
                    column.setWidth(50);
81
                } else if (column != null) {
82
                    if (term != null) {
83
                        PreferencesUtil.setBooleanValue(term.getUuid().toString(), false);
84
                    }
85
                    column.setWidth(0);
86
                }
87
//                if (termSet != null) {
88
//                	TableColumn[] columns = viewer.getTable().getColumns();
89
//                	for (DefinedTermBase<DefinedTermBase> term : termSet) {
90
//                		if(selected.getText().equalsIgnoreCase(term.getTitleCache())){
91
//                		    selectedTerm = term;
92
//        					for(int i=0; i<columns.length; i++){
93
//        						column = null;
94
//                        		if(columns[i].getText().equalsIgnoreCase(term.getIdInVocabulary())){
95
//                        			column = columns[i];
96
//                        			logger.info("Column no " +i +" Column Header "+ column.getText() ); //$NON-NLS-1$ //$NON-NLS-2$
97
//                				}else if (columns[i].getText().equalsIgnoreCase(term.getTitleCache())){
98
//                					column = columns[i];
99
//                        			logger.info("Column no " +i +" Column Header "+ column.getText() ); //$NON-NLS-1$ //$NON-NLS-2$
100
//
101
//                        		}
102
//                        		if (column != null && column.getWidth() == 0) {
103
//                                    // save column status if shown or not
104
//                                    if (selectedTerm != null) {
105
//                                        PreferencesUtil.getPreferenceStore().setValue(selectedTerm.getUuid().toString(), true);
106
//                                    }
107
//                                    column.setWidth(50);
108
//                                } else if (column != null) {
109
//                                    if (selectedTerm != null) {
110
//                                        PreferencesUtil.getPreferenceStore().setValue(selectedTerm.getUuid().toString(), false);
111
//                                    }
112
//                                    column.setWidth(0);
113
//                                }
114
//                        	}
115
//        					break;
116
//        				}
117
//
118
//        			}
119
//
120
//                }
121

    
122
                editor.refresh();
123

    
124
            }
125
        });
126
    }
127

    
128
    private void initialMenuItem(){
129
        MenuItem menuItem = new MenuItem(menu, SWT.PUSH);
130
        menuItem.setText(Messages.ChecklistDropdownSelectionListener_ADD_DISTRIBUTION);
131
        menuItem.addSelectionListener(new SelectionAdapter() {
132
            @Override
133
            public void widgetSelected(SelectionEvent event) {
134
                AvailableDistributionWizard availableDistributionWizard = new AvailableDistributionWizard();
135
                WizardDialog dialog = new WizardDialog(StoreUtil.getShell(),
136
                        availableDistributionWizard);
137

    
138
                int open = dialog.open();
139
                if(open == 0){
140
                	editor.reload();
141
                }
142
            }
143
        });
144
        new MenuItem(menu, SWT.SEPARATOR);
145
    }
146

    
147
    @Override
148
    public void widgetSelected(SelectionEvent event) {
149
        if (event.detail == SWT.ARROW) {
150
            ToolItem item = (ToolItem) event.widget;
151
            Rectangle rect = item.getBounds();
152
            Point pt = item.getParent().toDisplay(new Point(rect.x, rect.y));
153
            menu.setLocation(pt.x, pt.y + rect.height);
154
            menu.setVisible(true);
155

    
156
        } else {
157
            menu.setVisible(true);
158
        }
159

    
160
    }
161

    
162
    public Menu getMenu(){
163
    	return menu;
164
    }
165
}
(2-2/20)