/******************************************************************************* * 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.common.editor; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.SashForm; import org.eclipse.swt.layout.*; import org.eclipse.jface.viewers.*; import org.jboss.tools.common.model.*; import org.jboss.tools.common.model.util.*; public class TreeGuiEditor extends AbstractSectionEditor { private SashForm sash = null; private XModelObjectTreeViewComponent component; private XModelObject xmo = null; // private XModel model = null; private XFilteredTreeConstraint[] filters = new XFilteredTreeConstraint[0]; public TreeGuiEditor() {} private void createGui() { sash = new SashForm(guiControl, SWT.HORIZONTAL); control = sash; control.setLayoutData(new GridData(GridData.FILL_BOTH)); component = new XModelObjectTreeViewComponent(this); component.setModelObject(object); component.setCache(new XModelObjectCache(object)); for (int i = 0; i < filters.length; i++) component.addFilter(filters[i]); component.createControl(sash); } protected void updateGui() { if(xmo == object) return; xmo = object; disposeGui(); // if (object != null) { // model = object.getModel(); // } createGui(); fireGuiModified(); } public TreeViewer getTreeViewer() { return component == null ? null : component.getViewer(); } public ISelectionProvider getSelectionProvider() { return component == null ? null : component.getSelectionProvider(); } public void fireEditorSelected() { if(getSelectionProvider() != null) component.selectionProvider.fireSelectionChanged(); } public void addFilter(XFilteredTreeConstraint filter) { filters = new XFilteredTreeConstraint[]{filter}; } protected void disposeGui() { if(component != null) component.dispose(); component = null; if(sash != null && !sash.isDisposed()) sash.dispose(); sash = null; super.disposeGui(); } }