|
Lines 13-18
Link Here
|
| 13 |
package org.eclipse.tptp.wsdm.tooling.wizard.mrt.internal; |
13 |
package org.eclipse.tptp.wsdm.tooling.wizard.mrt.internal; |
| 14 |
|
14 |
|
| 15 |
import java.util.Arrays; |
15 |
import java.util.Arrays; |
|
|
16 |
import java.util.Iterator; |
| 16 |
import java.util.LinkedList; |
17 |
import java.util.LinkedList; |
| 17 |
import java.util.List; |
18 |
import java.util.List; |
| 18 |
|
19 |
|
|
Lines 20-27
Link Here
|
| 20 |
import org.eclipse.jface.action.Action; |
21 |
import org.eclipse.jface.action.Action; |
| 21 |
import org.eclipse.jface.dialogs.Dialog; |
22 |
import org.eclipse.jface.dialogs.Dialog; |
| 22 |
import org.eclipse.jface.dialogs.IDialogConstants; |
23 |
import org.eclipse.jface.dialogs.IDialogConstants; |
|
|
24 |
import org.eclipse.jface.viewers.CheckStateChangedEvent; |
| 23 |
import org.eclipse.jface.viewers.CheckboxTreeViewer; |
25 |
import org.eclipse.jface.viewers.CheckboxTreeViewer; |
| 24 |
import org.eclipse.jface.viewers.DoubleClickEvent; |
26 |
import org.eclipse.jface.viewers.DoubleClickEvent; |
|
|
27 |
import org.eclipse.jface.viewers.ICheckStateListener; |
| 25 |
import org.eclipse.jface.viewers.IDoubleClickListener; |
28 |
import org.eclipse.jface.viewers.IDoubleClickListener; |
| 26 |
import org.eclipse.jface.viewers.ISelection; |
29 |
import org.eclipse.jface.viewers.ISelection; |
| 27 |
import org.eclipse.jface.viewers.IStructuredSelection; |
30 |
import org.eclipse.jface.viewers.IStructuredSelection; |
|
Lines 53-59
Link Here
|
| 53 |
private CheckboxTreeViewer _capsViewer; |
56 |
private CheckboxTreeViewer _capsViewer; |
| 54 |
private CapsTreeContentProvider _contentProvider; |
57 |
private CapsTreeContentProvider _contentProvider; |
| 55 |
|
58 |
|
| 56 |
private List SELECTED_WSDLS = new LinkedList(); |
59 |
private List _selectedCapabilities = new LinkedList(); |
| 57 |
|
60 |
|
| 58 |
/* |
61 |
/* |
| 59 |
* Constructor which sets the selected capabilities and containerName |
62 |
* Constructor which sets the selected capabilities and containerName |
|
Lines 136-142
Link Here
|
| 136 |
for (int i = 0; i < checkedElements.length; i++) |
139 |
for (int i = 0; i < checkedElements.length; i++) |
| 137 |
{ |
140 |
{ |
| 138 |
if (checkedElements[i] instanceof Capability) |
141 |
if (checkedElements[i] instanceof Capability) |
| 139 |
SELECTED_WSDLS.add(checkedElements[i]); |
142 |
_selectedCapabilities.add(checkedElements[i]); |
| 140 |
} |
143 |
} |
| 141 |
super.okPressed(); |
144 |
super.okPressed(); |
| 142 |
} |
145 |
} |
|
Lines 146-153
Link Here
|
| 146 |
*/ |
149 |
*/ |
| 147 |
public Capability[] getSelectedCaps() |
150 |
public Capability[] getSelectedCaps() |
| 148 |
{ |
151 |
{ |
| 149 |
return (Capability[]) SELECTED_WSDLS |
152 |
return (Capability[]) _selectedCapabilities |
| 150 |
.toArray(new Capability[SELECTED_WSDLS.size()]); |
153 |
.toArray(new Capability[_selectedCapabilities .size()]); |
| 151 |
} |
154 |
} |
| 152 |
|
155 |
|
| 153 |
private void hookAllListeners() |
156 |
private void hookAllListeners() |
|
Lines 173-177
Link Here
|
| 173 |
doubleClickAction.run(); |
176 |
doubleClickAction.run(); |
| 174 |
} |
177 |
} |
| 175 |
}); |
178 |
}); |
|
|
179 |
|
| 180 |
_capsViewer.addCheckStateListener(new ICheckStateListener() { |
| 181 |
public void checkStateChanged(CheckStateChangedEvent event) { |
| 182 |
Object element = event.getElement(); |
| 183 |
setCheckStatus(element, event.getChecked()); |
| 184 |
getButton(IDialogConstants.OK_ID).setEnabled(_capsViewer.getCheckedElements().length!=0); |
| 185 |
} |
| 186 |
}); |
| 176 |
} |
187 |
} |
|
|
188 |
|
| 189 |
private void setCheckStatus(Object selElement, boolean checkState) { |
| 190 |
Object[] checkedElements = _capsViewer.getCheckedElements(); |
| 191 |
if(selElement instanceof Capability){ |
| 192 |
Capability selCapability = (Capability)selElement; |
| 193 |
// add/remove the capability from the _selectedCapabilities |
| 194 |
boolean found = false; |
| 195 |
for (Iterator it = _selectedCapabilities.iterator(); it.hasNext();) { |
| 196 |
Capability cap = (Capability)it.next(); |
| 197 |
if(selCapability.equals(cap)){ |
| 198 |
found = true; |
| 199 |
break; |
| 200 |
} |
| 201 |
} |
| 202 |
|
| 203 |
Object parent = _contentProvider.getParent(selElement); |
| 204 |
if (_capsViewer.getChecked(parent) && !checkState){ |
| 205 |
_capsViewer.setChecked(parent, false); |
| 206 |
} |
| 207 |
else if(!_capsViewer.getChecked(parent) && checkState && allChildrenChecked(parent)){ |
| 208 |
_capsViewer.setChecked(parent, true); |
| 209 |
} |
| 210 |
_capsViewer.setChecked(selElement,checkState); |
| 211 |
}else if(selElement instanceof Category){ |
| 212 |
// if the Category is selected |
| 213 |
Category selCategory = (Category) selElement; |
| 214 |
|
| 215 |
Object[] categoryList = _contentProvider.getChildren(_capsViewer.getInput()); |
| 216 |
for (int j=0; j< categoryList.length; j++) { |
| 217 |
Category category = (Category) categoryList[j]; |
| 218 |
if (category.getName().equals(selCategory.getName())) { |
| 219 |
Object[] capabilities = _contentProvider.getChildren(category); |
| 220 |
if (capabilities.length > 0) { |
| 221 |
for (int caps=0; caps<capabilities.length; caps++){ |
| 222 |
setCheckStatus(capabilities[caps], checkState); |
| 223 |
} |
| 224 |
} else _capsViewer.setChecked(selElement,false); |
| 225 |
} |
| 226 |
} |
| 227 |
|
| 228 |
} |
| 229 |
} |
| 230 |
|
| 231 |
private boolean allChildrenChecked(Object parent) { |
| 232 |
boolean allChecked = true; |
| 233 |
Object[] children = _contentProvider.getChildren(parent); |
| 234 |
if (children.length > 0) { |
| 235 |
for (int i=0; i<children.length; i++) { |
| 236 |
if (!_capsViewer.getChecked(children[i])) |
| 237 |
allChecked = false; |
| 238 |
} |
| 239 |
} |
| 240 |
else return false; |
| 241 |
return allChecked; |
| 242 |
} |
| 177 |
} |
243 |
} |