Java tutorial
/*---------------- FILE HEADER KALYPSO ------------------------------------------ * * This file is part of kalypso. * Copyright (C) 2004 by: * * Technical University Hamburg-Harburg (TUHH) * Institute of River and coastal engineering * Denickestrae 22 * 21073 Hamburg, Germany * http://www.tuhh.de/wb * * and * * Bjoernsen Consulting Engineers (BCE) * Maria Trost 3 * 56070 Koblenz, Germany * http://www.bjoernsen.de * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Contact: * * E-Mail: * belger@bjoernsen.de * schlienger@bjoernsen.de * v.doemming@tuhh.de * * ---------------------------------------------------------------------------*/ package org.kalypso.ogc.gml.outline.nodes; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.jface.viewers.Viewer; import org.eclipse.swt.widgets.Control; import org.kalypso.contribs.eclipse.jface.viewers.ViewerUtilities; /** * Content provider for modifying the outline tree. It filters the styles and the rules. * * @author Holger Albert */ public class ThemeNodeContentProvider implements ITreeContentProvider { private TreeViewer m_viewer; private boolean m_isCompact = true; @Override public void dispose() { } protected TreeViewer getViewer() { return m_viewer; } @Override public Object[] getElements(final Object inputElement) { return getChildren(inputElement); } @Override public Object[] getChildren(final Object element) { final IThemeNode node = (IThemeNode) element; if (m_isCompact && node.isCompactable()) return node.getChildrenCompact(); return node.getChildren(); } @Override public boolean hasChildren(final Object element) { final IThemeNode node = (IThemeNode) element; if (m_isCompact && node.isCompactable()) return node.hasChildrenCompact(); return node.hasChildren(); } @Override public Object getParent(final Object element) { if (!(element instanceof IThemeNode)) return null; final IThemeNode node = (IThemeNode) element; return node.getParent(); } /** * @see org.eclipse.ui.model.WorkbenchContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object) */ @Override public void inputChanged(final Viewer viewer, final Object oldInput, final Object newInput) { m_viewer = (TreeViewer) viewer; } protected void refreshViewer(final Object element) { final TreeViewer viewer = getViewer(); final Control control = viewer.getControl(); if (control == null || control.isDisposed()) return; final Object elementToRefresh = element == null ? m_viewer.getInput() : element; ViewerUtilities.refresh(viewer, elementToRefresh, true); } public boolean isCompact() { return m_isCompact; } public void setCompact(final boolean compact) { if (compact == m_isCompact) return; m_isCompact = compact; refreshViewer(null); } }