/* * ----------------------------------------------------------------------- * File: $HeadURL$ * Revision $LastChangedRevision$ * Last Modified: $LastChangedDate$ * Last Change by: $LastChangedBy$ * ----------------------------------------------------------------------- * Copyright (C) 2007 Keith Stribley <devel@thanlwinsoft.org> * * 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., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA * ----------------------------------------------------------------------- */ package org.thanlwinsoft.languagetest.eclipse.views; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IResourceChangeEvent; import org.eclipse.core.resources.IResourceChangeListener; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IStatus; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Group; import org.eclipse.swt.widgets.Tree; import org.eclipse.ui.part.ViewPart; import org.thanlwinsoft.languagetest.eclipse.LanguageTestPlugin; import org.thanlwinsoft.languagetest.eclipse.natures.LanguageUserNature; /** * @author keith * */ public class TestHistoryView extends ViewPart { private TreeViewer viewer = null; private Tree tree = null; private ITreeContentProvider provider = null; public final static String ID = "org.thanlwinsoft.languagetest.TestHistoryView"; /* (non-Javadoc) * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite) */ public void createPartControl(Composite parent) { Group mainGroup = new Group(parent, SWT.SHADOW_ETCHED_IN); mainGroup.setLayout(new FillLayout()); tree = new Tree(mainGroup, SWT.V_SCROLL | SWT.H_SCROLL); viewer = new TreeViewer(tree); viewer.setAutoExpandLevel(TreeViewer.ALL_LEVELS); provider = new TestHistoryProvider(); viewer.setContentProvider(provider); viewer.setLabelProvider(new TestHistoryLabelProvider(provider)); viewer.setInput(ResourcesPlugin.getWorkspace().getRoot()); viewer.refresh(); IResourceChangeListener listener = new IResourceChangeListener(){ public void resourceChanged(IResourceChangeEvent event) { IResource r = event.getResource(); if (r.getProject() == null) { viewer.refresh(); tree.redraw(); } try { if (r.getProject().isAccessible() && r.getProject().hasNature(LanguageUserNature.ID)) { viewer.refresh(); tree.redraw(); } } catch (CoreException e) { LanguageTestPlugin.log(IStatus.WARNING,e.getLocalizedMessage(),e); } } }; ResourcesPlugin.getWorkspace().addResourceChangeListener( listener, IResourceChangeEvent.POST_CHANGE); } /* (non-Javadoc) * @see org.eclipse.ui.part.WorkbenchPart#setFocus() */ public void setFocus() { // TODO Auto-generated method stub } }