1 package oic.simulator.serviceprovider.view.dialogs;
3 import java.util.Iterator;
6 import oic.simulator.serviceprovider.Activator;
7 import oic.simulator.serviceprovider.resource.DeleteCategory;
8 import oic.simulator.serviceprovider.utils.Constants;
10 import org.eclipse.jface.wizard.WizardPage;
11 import org.eclipse.swt.SWT;
12 import org.eclipse.swt.custom.CCombo;
13 import org.eclipse.swt.events.ModifyEvent;
14 import org.eclipse.swt.events.ModifyListener;
15 import org.eclipse.swt.events.SelectionAdapter;
16 import org.eclipse.swt.events.SelectionEvent;
17 import org.eclipse.swt.layout.GridData;
18 import org.eclipse.swt.layout.GridLayout;
19 import org.eclipse.swt.widgets.Button;
20 import org.eclipse.swt.widgets.Composite;
21 import org.eclipse.swt.widgets.Group;
22 import org.eclipse.swt.widgets.Text;
24 public class DeleteResourcePage extends WizardPage {
26 private Button allRbtn;
27 private Button byTypeRbtn;
28 private Button byUriRbtn;
30 private CCombo resourceTypeCmb;
31 private Text resourceUriTxt;
33 private DeleteCategory deleteCategory;
35 // It will hold either the resource type or resource uri
36 private String deleteCandidate;
38 protected DeleteResourcePage() {
39 super("Delete Resource");
43 public void createControl(Composite parent) {
44 setPageComplete(false);
45 setTitle(Constants.DELETE_PAGE_TITLE);
46 setMessage(Constants.DELETE_PAGE_MESSAGE);
48 Composite compContent = new Composite(parent, SWT.NONE);
49 compContent.setLayout(new GridLayout(1, false));
50 GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
51 compContent.setLayoutData(gd);
53 Group group = new Group(compContent, SWT.NONE);
54 group.setText("Select Category");
55 GridLayout gridLayout = new GridLayout(2, false);
56 gridLayout.verticalSpacing = 15;
57 gridLayout.marginTop = 10;
58 gridLayout.marginLeft = 10;
59 group.setLayout(gridLayout);
60 gd = new GridData(SWT.FILL, SWT.FILL, true, true);
61 group.setLayoutData(gd);
63 allRbtn = new Button(group, SWT.RADIO);
64 allRbtn.setText("All resources");
66 gd.horizontalSpan = 2;
68 allRbtn.setLayoutData(gd);
70 byTypeRbtn = new Button(group, SWT.RADIO);
71 byTypeRbtn.setText("All (By resource type)");
74 byTypeRbtn.setLayoutData(gd);
76 resourceTypeCmb = new CCombo(group, SWT.READ_ONLY | SWT.BORDER);
79 resourceTypeCmb.setLayoutData(gd);
81 byUriRbtn = new Button(group, SWT.RADIO);
82 byUriRbtn.setText("By Resource URI");
85 byUriRbtn.setLayoutData(gd);
87 resourceUriTxt = new Text(group, SWT.BORDER);
90 resourceUriTxt.setLayoutData(gd);
92 // Setting the initial visibility of controls
93 allRbtn.setSelection(false);
94 byTypeRbtn.setSelection(false);
95 byUriRbtn.setSelection(false);
97 resourceTypeCmb.setEnabled(false);
98 resourceUriTxt.setEnabled(false);
100 deleteCategory = DeleteCategory.NONE;
106 setControl(compContent);
109 private void populateDataInUI() {
110 // Populate Resourcetype in Combo
111 populateResourceTypeCombo();
114 private void populateResourceTypeCombo() {
115 List<String> resourceTypeList;
116 resourceTypeList = Activator.getDefault().getResourceManager()
117 .getResourceTypeList();
118 if (null != resourceTypeList) {
119 Iterator<String> itr = resourceTypeList.iterator();
120 while (itr.hasNext()) {
121 resourceTypeCmb.add(itr.next());
125 // By default, select the first item in the combo
126 if (resourceTypeCmb.getItemCount() > 0) {
127 resourceTypeCmb.select(0);
128 deleteCandidate = resourceTypeCmb.getText();
132 public void addUIListeners() {
133 allRbtn.addSelectionListener(new SelectionAdapter() {
135 public void widgetSelected(SelectionEvent e) {
136 // Update the visibility of controls
137 resourceTypeCmb.setEnabled(false);
138 resourceUriTxt.setEnabled(false);
140 deleteCategory = DeleteCategory.ALL;
141 deleteCandidate = null;
142 setPageComplete(isSelectionDone());
146 byTypeRbtn.addSelectionListener(new SelectionAdapter() {
148 public void widgetSelected(SelectionEvent e) {
149 // Update the visibility of controls
150 resourceTypeCmb.setEnabled(true);
151 resourceUriTxt.setEnabled(false);
153 deleteCategory = DeleteCategory.BY_TYPE;
154 setPageComplete(isSelectionDone());
158 byUriRbtn.addSelectionListener(new SelectionAdapter() {
160 public void widgetSelected(SelectionEvent e) {
161 // Update the visibility of controls
162 resourceUriTxt.setEnabled(true);
163 resourceUriTxt.setFocus();
164 resourceTypeCmb.setEnabled(false);
166 deleteCategory = DeleteCategory.BY_URI;
167 setPageComplete(isSelectionDone());
171 resourceTypeCmb.addModifyListener(new ModifyListener() {
173 public void modifyText(ModifyEvent arg0) {
174 setPageComplete(isSelectionDone());
178 resourceUriTxt.addModifyListener(new ModifyListener() {
180 public void modifyText(ModifyEvent arg0) {
181 setPageComplete(isSelectionDone());
186 public boolean isSelectionDone() {
187 boolean done = false;
188 if (deleteCategory == DeleteCategory.ALL) {
190 } else if (deleteCategory == DeleteCategory.BY_TYPE) {
191 int selectedItemIndex = resourceTypeCmb.getSelectionIndex();
192 if (selectedItemIndex >= 0) {
193 deleteCandidate = resourceTypeCmb.getItem(selectedItemIndex);
194 if (null != deleteCandidate && deleteCandidate.length() > 0) {
198 } else if (deleteCategory == DeleteCategory.BY_URI) {
199 deleteCandidate = resourceUriTxt.getText();
200 if (null != deleteCandidate && deleteCandidate.length() > 0) {
207 public DeleteCategory getDeleteCategory() {
208 return deleteCategory;
211 public String getDeleteCandidate() {
212 return deleteCandidate;
215 public void setFocusToTextBox() {
216 resourceUriTxt.setFocus();