use of com.devonfw.cobigen.eclipse.wizard.common.model.SelectFileLabelProvider in project cobigen by devonfw.
the class CheckStateListener method checkStateChanged.
@Override
public void checkStateChanged(CheckStateChangedEvent event) {
MDC.put(InfrastructureConstants.CORRELATION_ID, UUID.randomUUID().toString());
LOG.info("Increment selection changed. Calculating generation preview file tree...");
try {
CheckboxTreeViewer resourcesTree = this.page.getResourcesTree();
CheckboxTreeViewer incrementSelector = this.page.getPackageSelector();
if (event.getSource().equals(resourcesTree)) {
resourcesTree.setSubtreeChecked(event.getElement(), event.getChecked());
((SelectFileLabelProvider) resourcesTree.getLabelProvider()).setSelectedResources(resourcesTree.getCheckedElements());
refreshNodes(event);
} else if (event.getSource().equals(incrementSelector)) {
performCheckLogic(event, incrementSelector);
Set<Object> checkedElements = new HashSet<>(Arrays.asList(incrementSelector.getCheckedElements()));
performCheckLogicForALLIncrement(incrementSelector, checkedElements);
Map<String, Set<TemplateTo>> paths = this.cobigenWrapper.getTemplateDestinationPaths(this.selectedIncrements);
Set<String> workspaceExternalPaths = Sets.newHashSet();
for (String path : paths.keySet()) {
if (this.cobigenWrapper.isWorkspaceExternalPath(path)) {
workspaceExternalPaths.add(path);
}
}
List<OffWorkspaceResourceTreeNode> offScopeResourceTree = buildOffScopeResourceTree(workspaceExternalPaths);
((SelectFileContentProvider) resourcesTree.getContentProvider()).filter(paths.keySet(), offScopeResourceTree);
this.page.setDisplayedfilePathToTemplateMapping(paths);
resourcesTree.setCheckedElements(new Object[0]);
resourcesTree.refresh();
resourcesTree.expandAll();
if (!this.batch) {
selectNewResources();
selectMergeableResources();
selectOverridingResources();
} else {
selectAllResources(paths.keySet());
}
}
checkPageComplete();
} catch (Throwable e) {
ExceptionHandler.handle(e, null);
}
LOG.info("Calculating of changed preview file tree finished.");
MDC.remove(InfrastructureConstants.CORRELATION_ID);
}
use of com.devonfw.cobigen.eclipse.wizard.common.model.SelectFileLabelProvider in project cobigen by devonfw.
the class SelectFilesPage method buildResourceTreeViewer.
/**
* Builds the {@link TreeViewer} providing the tree of resources to be generated
*
* @param customizable states whether the checkboxes of the tree should be displayed or not
*/
public void buildResourceTreeViewer(boolean customizable) {
IContentProvider cp;
IBaseLabelProvider lp;
Object[] checkedElements;
if (this.resourcesTree != null) {
cp = this.resourcesTree.getContentProvider();
lp = this.resourcesTree.getLabelProvider();
checkedElements = this.resourcesTree.getCheckedElements();
} else {
cp = new SelectFileContentProvider();
lp = new SelectFileLabelProvider(this.cobigenWrapper, this.batch);
this.incrementSelector.addCheckStateListener((SelectFileLabelProvider) lp);
checkedElements = new Object[0];
}
disposeContainerRightChildren();
Label label = new Label(this.containerRight, SWT.NONE);
label.setText("Resources to be generated (selected):");
if (customizable) {
this.resourcesTree = new CustomizedCheckboxTreeViewer(this.containerRight);
} else {
this.resourcesTree = new SimulatedCheckboxTreeViewer(this.containerRight);
}
this.resourcesTree.setContentProvider(cp);
this.resourcesTree.setLabelProvider(lp);
this.resourcesTree.setInput(ResourcesPlugin.getWorkspace().getRoot().getProjects());
this.resourcesTree.expandToLevel(AbstractTreeViewer.ALL_LEVELS);
GridData gd = new GridData(GridData.FILL_BOTH);
gd.grabExcessHorizontalSpace = true;
gd.grabExcessVerticalSpace = true;
this.resourcesTree.getTree().setLayoutData(gd);
CheckStateListener listener = new CheckStateListener(this.cobigenWrapper, this, this.batch);
this.resourcesTree.addCheckStateListener(listener);
this.resourcesTree.setCheckedElements(checkedElements);
this.containerRight.layout();
}
Aggregations