/******************************************************************************* * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Exadel, Inc. and Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.jsf.ui.wizard.capabilities; import java.util.Properties; import org.jboss.tools.common.model.ui.wizards.query.list.TreeItemSelectionManager; import org.jboss.tools.common.model.ui.wizards.special.AbstractSpecialWizardStep; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.*; import org.eclipse.swt.widgets.*; import org.jboss.tools.common.meta.action.impl.SpecialWizardSupport; import org.jboss.tools.jsf.project.capabilities.IPerformerItem; public class AddCapabilitiesScreenOne extends AbstractSpecialWizardStep { protected TreeViewer treeViewer; IPerformerItem performer; CapabilityPerformersProvider provider = new CapabilityPerformersProvider(); public void setSupport(SpecialWizardSupport support, int i) { super.setSupport(support, i); performer = (IPerformerItem)support.getProperties().get("CapabilitiesPerformer"); //$NON-NLS-1$ provider.setItems(performer.getChildren()); } public Control createControl(Composite parent) { Composite composite = new Composite(parent, SWT.NONE); GridLayout layout = new GridLayout(); layout.horizontalSpacing = 10; layout.marginHeight = 10; layout.verticalSpacing = 10; layout.marginWidth = 10; composite.setLayout(layout); GridData gd = new GridData(GridData.FILL_BOTH); composite.setLayoutData(gd); treeViewer = new TreeViewer(composite, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.CHECK); treeViewer.setContentProvider(provider); treeViewer.setLabelProvider(provider); treeViewer.setInput(this); Control tc = treeViewer.getControl(); tc.setLayoutData(new GridData(GridData.FILL_BOTH)); new TreeItemSelectionManager(treeViewer, new Flipper()); createProgressMonitorPart(composite); return composite; } class Flipper implements TreeItemSelectionManager.Listener { public void flip(TreeItem item) { IPerformerItem w = (IPerformerItem)item.getData(); if(w == null || !w.isEnabled()) return; w.setSelected(!w.isSelected()); treeViewer.refresh(w); wizard.dataChanged(validator, new Properties()); } public boolean isSelected(Object data) { IPerformerItem w = (IPerformerItem)data; return w != null && w.isSelected(); } } }