2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
9 package eu
.etaxonomy
.taxeditor
.ui
.group
.grantedauthority
;
11 import org
.eclipse
.swt
.SWT
;
12 import org
.eclipse
.swt
.events
.MouseAdapter
;
13 import org
.eclipse
.swt
.events
.MouseEvent
;
14 import org
.eclipse
.swt
.events
.MouseTrackAdapter
;
15 import org
.eclipse
.swt
.layout
.RowLayout
;
16 import org
.eclipse
.swt
.widgets
.Button
;
17 import org
.eclipse
.swt
.widgets
.Composite
;
18 import org
.eclipse
.swt
.widgets
.Display
;
20 import eu
.etaxonomy
.cdm
.model
.common
.GrantedAuthorityImpl
;
21 import eu
.etaxonomy
.cdm
.persistence
.hibernate
.permission
.CRUD
;
22 import eu
.etaxonomy
.cdm
.persistence
.hibernate
.permission
.CdmAuthority
;
23 import eu
.etaxonomy
.cdm
.persistence
.hibernate
.permission
.Operation
;
27 * Widget for editing {@link Operation} objects, consisting of 4 checkboxes for CREATE, UPDATE, READ, DELETE operations.
30 * @created Mar 28, 2013
33 public class CRUDOperationChooser
extends Composite
{
35 private Button createCheckButton
;
36 private Button readCheckButton
;
37 private Button deleteCheckButton
;
38 private Button updateCheckButton
;
40 private CdmAuthorityRow caRow
;
41 private GrantedAuthorityImpl grantedAuthorityI
;
42 private CdmAuthority cdmAuthority
;
43 private CdmAuthorityCompositeViewer viewer
;
46 * Create the composite.
50 public CRUDOperationChooser(final CdmAuthorityRow parent
, int style
) {
52 setBackground(Display
.getCurrent().getSystemColor(SWT
.COLOR_WHITE
));
53 RowLayout rowLayout
= new RowLayout(SWT
.HORIZONTAL
);
54 rowLayout
.justify
= true;
59 createCheckButton
= new Button(this, SWT
.CHECK
);
60 createCheckButton
.setForeground(Display
.getCurrent().getSystemColor(SWT
.COLOR_WIDGET_DARK_SHADOW
));
61 createCheckButton
.addMouseListener(new MouseAdapter() {
63 public void mouseUp(MouseEvent arg0
) {
64 if(cdmAuthority
.getOperation() != null) {
65 if(createCheckButton
.getSelection()) {
66 cdmAuthority
.getOperation().add(CRUD
.CREATE
);
68 cdmAuthority
.getOperation().remove(CRUD
.CREATE
);
71 grantedAuthorityI
= viewer
.updateGrantedAuthority(grantedAuthorityI
, cdmAuthority
);
72 parent
.setDirty(true);
78 createCheckButton
.setText("C");
80 readCheckButton
= new Button(this, SWT
.CHECK
);
81 readCheckButton
.addMouseTrackListener(new MouseTrackAdapter() {
83 public void mouseHover(MouseEvent arg0
) {
86 readCheckButton
.addMouseListener(new MouseAdapter() {
88 public void mouseUp(MouseEvent arg0
) {
89 if(cdmAuthority
.getOperation() != null) {
90 if(readCheckButton
.getSelection()) {
91 cdmAuthority
.getOperation().add(CRUD
.READ
);
93 cdmAuthority
.getOperation().remove(CRUD
.READ
);
96 grantedAuthorityI
= viewer
.updateGrantedAuthority(grantedAuthorityI
, cdmAuthority
);
97 parent
.setDirty(true);
104 readCheckButton
.setText("R");
106 deleteCheckButton
= new Button(this, SWT
.CHECK
);
107 deleteCheckButton
.addMouseListener(new MouseAdapter() {
109 public void mouseUp(MouseEvent arg0
) {
110 if(cdmAuthority
.getOperation() != null) {
111 if(deleteCheckButton
.getSelection()) {
112 cdmAuthority
.getOperation().add(CRUD
.DELETE
);
114 cdmAuthority
.getOperation().remove(CRUD
.DELETE
);
117 grantedAuthorityI
= viewer
.updateGrantedAuthority(grantedAuthorityI
, cdmAuthority
);
118 parent
.setDirty(true);
124 deleteCheckButton
.setText("D");
126 updateCheckButton
= new Button(this, SWT
.CHECK
);
127 updateCheckButton
.addMouseListener(new MouseAdapter() {
129 public void mouseUp(MouseEvent arg0
) {
130 if(cdmAuthority
.getOperation() != null) {
131 if(updateCheckButton
.getSelection()) {
132 cdmAuthority
.getOperation().add(CRUD
.UPDATE
);
134 cdmAuthority
.getOperation().remove(CRUD
.UPDATE
);
137 grantedAuthorityI
= viewer
.updateGrantedAuthority(grantedAuthorityI
, cdmAuthority
);
138 parent
.setDirty(true);
144 updateCheckButton
.setText("U");
150 protected void checkSubclass() {
151 // Disable the check that prevents subclassing of SWT components
155 * Set viewer, CDM Authority and corresponding GrantedAuthorityImpl object
158 * @param grantedAuthorityI
159 * @param cdmAuthority
161 public void setAuthority(CdmAuthorityCompositeViewer viewer
,
162 GrantedAuthorityImpl grantedAuthorityI
,
163 CdmAuthority cdmAuthority
) {
164 this.grantedAuthorityI
= grantedAuthorityI
;
165 this.cdmAuthority
= cdmAuthority
;
166 this.viewer
= viewer
;
173 * Update widget state.
175 private void updateView() {
176 createCheckButton
.setSelection(false);
177 readCheckButton
.setSelection(false);
178 deleteCheckButton
.setSelection(false);
179 updateCheckButton
.setSelection(false);
182 if(cdmAuthority
!= null && cdmAuthority
.getOperation() != null) {
183 if(cdmAuthority
.getOperation().contains(CRUD
.CREATE
)) {
184 createCheckButton
.setSelection(true);
186 if(cdmAuthority
.getOperation().contains(CRUD
.READ
)) {
187 readCheckButton
.setSelection(true);
189 if(cdmAuthority
.getOperation().contains(CRUD
.DELETE
)) {
190 deleteCheckButton
.setSelection(true);
192 if(cdmAuthority
.getOperation().contains(CRUD
.UPDATE
)) {
193 updateCheckButton
.setSelection(true);