final Label priorityLabel = new Label(composite, SWT.NONE);
udaptePriorityLabel(priorityLabel, cacheManager, source, target);
priorityLabel.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true,
false, 3, 1));
final Scale scale = new Scale(composite, SWT.NONE);
scale.setMinimum(0);
scale.setMaximum(100);
scale.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 1, 1));
scale.setSelection(cacheManager
.getSelectedGoalPriorizedDecompositionWeight(source, target));
final Spinner spinner = new Spinner(composite, SWT.NONE);
spinner.setMinimum(0);
spinner.setMaximum(100);
spinner.setSelection(scale.getSelection());
spinner.setLayoutData(new GridData(SWT.CENTER, SWT.TOP, false, false,
1, 1));
final Button lockButton = new Button(composite, SWT.TOGGLE);
lockButton.setFont(lockButtonFont);
lockButton.setText(UNLOCKED_STATE_STRING);
lockButton.setLayoutData(new GridData(SWT.CENTER, SWT.TOP, false,
false, 1, 1));
final Button deselectButton = new Button(composite, SWT.TOGGLE);
deselectButton.setImage(PlatformUI.getWorkbench().getSharedImages()
.getImage(ISharedImages.IMG_TOOL_DELETE));
deselectButton.setLayoutData(new GridData(SWT.CENTER, SWT.TOP, false,
false, 1, 1));
deselectButton.setSelection(cacheManager
.goalDecompositionIsMarkedAsToRemove(decomposition));
deselectButton.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent e) {
if (deselectButton.getSelection()) {
builder.deselectDecomposition(decomposition);
scale.setSelection(0);
spinner.setSelection(0);
updateRelatedScales(spinner, scale, decomposition,
scale.getSelection(), cacheManager, true);
lockButton.setSelection(true);
lockButton.setText(LOCKED_STATE_STRING);
setLockStateForControls();
spinner.setEnabled(false);
scale.setEnabled(false);
lockButton.setEnabled(false);
} else {
builder.reselectDecomposition(decomposition);
scale.setSelection(cacheManager
.getSelectedGoalPriorizedDecompositionWeight(cacheManager
.getSelectedGoalsPriorizedDecomposition(decomposition)));
spinner.setEnabled(true);
scale.setEnabled(true);
lockButton.setEnabled(true);
}
udaptePriorityLabel(priorityLabel, cacheManager, source, target);
}
@Override
public void widgetDefaultSelected(SelectionEvent e) {
}
});
lockedMap
.put(decomposition, cacheManager
.goalDecompositionIsMarkedAsToRemove(decomposition));
scalesMap.put(scale, decomposition);
spinnersMap.put(spinner, decomposition);
scale.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent e) {
spinner.setSelection(scale.getSelection());
updateRelatedScales(spinner, scale, decomposition,
scale.getSelection(), cacheManager, false);
udaptePriorityLabel(priorityLabel, cacheManager, source, target);
}
@Override
public void widgetDefaultSelected(SelectionEvent e) {
}
});
spinner.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent e) {
scale.setSelection(spinner.getSelection());
updateRelatedScales(spinner, scale, decomposition,
spinner.getSelection(), cacheManager, false);
udaptePriorityLabel(priorityLabel, cacheManager, source, target);
}