Update of /cvsroot/metamorphosis/krysalis-version/src/java/org/krysalis/version/eclipse/plugin/views
In directory sc8-pr-cvs1:/tmp/cvs-serv18457/src/java/org/krysalis/version/eclipse/plugin/views
Modified Files:
VersionView.java
Added Files:
VersionGridView.java
Log Message:
--- NEW FILE: VersionGridView.java ---
/*****************************************************************************
* Copyright (C) The Krysalis project. All rights reserved. *
* ------------------------------------------------------------------------- *
* This software is published under the terms of the Krysalis Patchy *
* Software License version 1.1_01, a copy of which has been included *
* at the bottom of this file. *
*****************************************************************************/
package org.krysalis.version.eclipse.plugin.views;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.IPath;
import org.eclipse.jdt.core.IClasspathEntry;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jdt.ui.JavaUI;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IMenuListener;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.Separator;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.ColumnLayoutData;
import org.eclipse.jface.viewers.ColumnWeightData;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.TableLayout;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.SashForm;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.ui.ISelectionListener;
import org.eclipse.ui.ISharedImages;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.part.ViewPart;
import org.krysalis.version.collecting.Collector;
import org.krysalis.version.collecting.collectors.VersionBrandCollector;
import org.krysalis.version.eclipse.plugin.VersionPlugin;
import org.krysalis.version.eclipse.plugin.actions.ClassCollectorAction;
import org.krysalis.version.eclipse.plugin.actions.CollectAllAction;
import org.krysalis.version.eclipse.plugin.actions.PackageCollectorAction;
import org.krysalis.version.eclipse.plugin.model.VersionGridContentProvider;
import org.krysalis.version.util.classpath.PathSet;
public class VersionGridView extends ViewPart implements ISelectionListener
{
Collector m_input = null;
VersionGridContentProvider m_contentProvider = null;
ArrayList m_classpathEntries = null;
private Action doubleClickAction;
private SashForm m_viewForm;
private Table m_table;
private TableViewer m_tableViewer;
private boolean disposed;
PackageCollectorAction m_packageCollectorAction = null;
ClassCollectorAction m_classCollectorAction = null;
CollectAllAction m_collectAllAction = null;
public static final String[] g_columnHeaders =
{ "Class", "Major", "Minor", "Point", "RlsLevel", "RlsQualifier", "BldNumber" };
private ColumnLayoutData[] columnLayouts =
{
new ColumnWeightData(40, true),
new ColumnWeightData(10, true),
new ColumnWeightData(10, true),
new ColumnWeightData(10, true),
new ColumnWeightData(10, true),
new ColumnWeightData(10, true),
new ColumnWeightData(10, true)};
public static final String ID = VersionGridView.class.getName();
class ViewLabelProvider extends LabelProvider implements ITableLabelProvider
{
public String getColumnText(Object obj, int index)
{
if (obj instanceof String[])
{
String[] arr = (String[]) obj;
if (index < arr.length)
{
if (index + 1 == arr.length)
{
return "";
}
return arr[index];
}
}
return getText(obj);
}
// todo
public Image getColumnImage(Object obj, int index)
{
if (obj instanceof String[])
{
String[] arr = (String[]) obj;
if (index < arr.length)
{
if ("true".equalsIgnoreCase(arr[index]))
{
return //JavaUI.getSharedImages().getImage( ISharedImages.
PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_INFO_TSK);
}
}
}
return index == 0 ? getImage(obj) : null;
}
public Image getImage(Object obj)
{
return JavaUI.getSharedImages().getImage(ISharedImages.IMG_OBJS_TASK_TSK);
}
}
/**
* The constructor.
*/
public VersionGridView()
{
}
/**
* This is a callback that will allow us
* to create the viewer and initialize it.
*/
public void createPartControl(Composite parent)
{
m_viewForm = new SashForm(parent, SWT.VERTICAL);
m_viewForm.setLayoutData(new GridData(GridData.FILL_BOTH));
Group group = new Group(m_viewForm, SWT.NONE);
GridLayout gridLayout = new GridLayout();
group.setLayout(gridLayout);
gridLayout.numColumns = 1;
group.setLayoutData(
new GridData(GridData.GRAB_VERTICAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
group.setText("Versions");
m_table = createTable(group);
m_tableViewer = new TableViewer(m_table);
m_contentProvider = new VersionGridContentProvider();
m_tableViewer.setContentProvider(m_contentProvider);
m_tableViewer.setLabelProvider(new ViewLabelProvider());
// Create menu and toolbars.
createActions();
createMenu();
createToolbar();
createContextMenu();
// add myself as a global selection listener
getSite().getPage().addSelectionListener(this);
// prime the selection
selectionChanged(null, getSite().getPage().getSelection());
}
protected Table createTable(Composite sashForm)
{
Table table = new Table(sashForm, SWT.H_SCROLL | SWT.V_SCROLL | SWT.SINGLE | SWT.FULL_SELECTION | SWT.BORDER);
table.setHeaderVisible(true);
table.setLinesVisible(true);
table.setLayoutData(new GridData(GridData.FILL_BOTH));
TableLayout layout = new TableLayout();
table.setLayout(layout);
createColumns(table, layout);
return table;
}
/** Create the table's columns.
*
* @param org.eclipse.swt.widgets.Table
* @param org.eclipse.jface.viewers.TableLayout
*/
private void createColumns(Table table, TableLayout layout)
{
for (int i = 0, lentgh = g_columnHeaders.length; i < lentgh; i++)
{
TableColumn column = new TableColumn(table, SWT.NONE);
column.setResizable(true);
column.setText(g_columnHeaders[i]);
layout.addColumnData(columnLayouts[i]);
}
}
/**
* @see ISelectionListener#selectionChanged(IWorkbenchPart, ISelection)
*/
public void selectionChanged(IWorkbenchPart part, ISelection selection)
{
System.out.println("VersionGridView::selectionChanged");
if (selection instanceof IStructuredSelection)
{
IStructuredSelection structSelection = (IStructuredSelection) selection;
try
{
Object selObject = structSelection.getFirstElement();
if(selObject instanceof IResource)
{
IJavaElement jElement = JavaCore.create((IResource) (selObject));
IJavaProject jProject = jElement.getJavaProject();
IClasspathEntry cpEntries[];
String pathString;
cpEntries = jProject.getResolvedClasspath(true);
if(cpEntries == null)
{
setResource(null, new VersionBrandCollector());
return;
}
m_classpathEntries = new ArrayList();
for (int i = 0; i < cpEntries.length; i++)
{
int cpEntryKind = cpEntries[i].getEntryKind();
if( cpEntryKind == IClasspathEntry.CPE_PROJECT
|| cpEntryKind == IClasspathEntry.CPE_LIBRARY )
{
IPath path = cpEntries[i].getPath();
pathString = path.toOSString();
m_classpathEntries.add(pathString);
System.out.println("Classpath string [" + pathString + "]");
}
}
}
setResource(m_classpathEntries, new VersionBrandCollector(new PathSet(m_classpathEntries)));
}
catch (JavaModelException jexp)
{
System.out.println("Java Model Exception - getting resolved classpath" + jexp.getMessage());
}
catch (Exception exp)
{
System.out.println("Exception in the selection changed " + exp.getMessage());
}
}
}
/**
* Create the actions.
*/
public void createActions()
{
System.out.println("VersionView::createActions");
m_packageCollectorAction = new PackageCollectorAction("PackageVersion", this);
m_packageCollectorAction.setImageDescriptor(getImageDescriptor("packages.gif"));
m_classCollectorAction = new ClassCollectorAction("ClassVersion", this);
m_classCollectorAction.setImageDescriptor(getImageDescriptor("class_hi.gif"));
m_collectAllAction = new CollectAllAction("JarManifestVersion", this);
m_collectAllAction.setImageDescriptor(getImageDescriptor("jar_desc_obj.gif"));
}
/**
* Returns the image descriptor with the given relative path.
*/
private ImageDescriptor getImageDescriptor(String relativePath)
{
System.out.println("VersionView::getImageDescriptor");
String iconPath = "icons/";
try
{
VersionPlugin plugin = VersionPlugin.getDefault();
URL installURL = plugin.getDescriptor().getInstallURL();
URL url = new URL(installURL, iconPath + relativePath);
return ImageDescriptor.createFromURL(url);
}
catch (MalformedURLException e)
{
// should not happen
return ImageDescriptor.getMissingImageDescriptor();
}
}
/**
* Create menu.
*/
private void createMenu()
{
System.out.println("VersionView::createMenu");
IMenuManager mgr = getViewSite().getActionBars().getMenuManager();
mgr.add(m_packageCollectorAction);
mgr.add(m_classCollectorAction);
mgr.add(m_collectAllAction);
}
/**
* Create toolbar.
*/
private void createToolbar()
{
System.out.println("VersionView::createToolbar");
IToolBarManager mgr = getViewSite().getActionBars().getToolBarManager();
mgr.add(m_packageCollectorAction);
mgr.add(m_classCollectorAction);
mgr.add(m_collectAllAction);
}
/**
* Create context menu.
*/
private void createContextMenu()
{
System.out.println("VersionView::createContextMenu");
// Create menu manager.
MenuManager menuMgr = new MenuManager();
menuMgr.setRemoveAllWhenShown(true);
menuMgr.addMenuListener(new IMenuListener()
{
public void menuAboutToShow(IMenuManager mgr)
{
fillContextMenu(mgr);
}
});
// Create menu.
Menu menu = menuMgr.createContextMenu(m_tableViewer.getControl());
m_tableViewer.getControl().setMenu(menu);
// Register menu for extension.
getSite().registerContextMenu(menuMgr, m_tableViewer);
}
private void fillContextMenu(IMenuManager mgr)
{
mgr.add(m_packageCollectorAction);
mgr.add(new Separator());
mgr.add(m_classCollectorAction);
mgr.add(new Separator());
mgr.add(m_collectAllAction);
}
/** Makes the view visible in the active perspective. If there
* isn't a view registered <code>null</code> is returned. Otherwise the
* opened view part is returned.
*/
public static VersionGridView openInActivePerspective()
{
try
{
return (VersionGridView) VersionPlugin.getActivePage().showView(VersionGridView.ID);
}
catch (PartInitException pe)
{
return null;
}
}
public void setNewInput(Collector input)
{
System.out.println("VersionView::setNewInput");
m_input = input;
m_tableViewer.setInput(m_input);
//m_viewer.add(getInputElements());
}
public void setResource(ArrayList classpathEntries, Collector input)
{
System.out.println("VersionView::setResource");
//Object[] versions = m_contentProvider.initialize(classpath, input);
if(classpathEntries != null)
{
m_classpathEntries = classpathEntries;
System.out.println("Size of the classpath entry is ["
+ m_classpathEntries.size() + "]");
}
m_contentProvider.initialize(classpathEntries);
// actualize tree
m_tableViewer.setContentProvider(m_contentProvider);
setNewInput(input);
}
private void hookDoubleClickAction()
{
/*viewer.addDoubleClickListener(new IDoubleClickListener() {
public void doubleClick(DoubleClickEvent event) {
doubleClickAction.run();
}
});*/
}
/**
* Passing the focus request to the viewer's control.
*/
public void setFocus()
{
if (m_viewForm != null)
{
m_viewForm.setFocus();
}
}
/*
* @see org.eclipse.ui.part.WorkbenchPart#setTitle(java.lang.String)
*/
public void setTitle(String title)
{
super.setTitle(title);
}
/*
* @see org.eclipse.ui.IWorkbenchPart#dispose()
*/
public void dispose()
{
disposed = true;
super.dispose();
}
public boolean isDisposed()
{
return disposed;
}
/**
* Returns the columnHeaders.
* @return String[]
*/
public static String[] getColumnHeaders()
{
return g_columnHeaders;
}
/**
* Returns the iD.
* @return String
*/
public static String getID()
{
return ID;
}
/**
* Returns the classpathEntries.
* @return ArrayList
*/
public ArrayList getClasspathEntries()
{
return m_classpathEntries;
}
/**
* Returns the contentProvider.
* @return VersionGridContentProvider
*/
public VersionGridContentProvider getContentProvider()
{
return m_contentProvider;
}
/**
* Returns the input.
* @return Collector
*/
public Collector getInput()
{
return m_input;
}
/**
* Sets the classpathEntries.
* @param classpathEntries The classpathEntries to set
*/
public void setClasspathEntries(ArrayList classpathEntries)
{
m_classpathEntries = classpathEntries;
}
/**
* Sets the contentProvider.
* @param contentProvider The contentProvider to set
*/
public void setContentProvider(VersionGridContentProvider contentProvider)
{
m_contentProvider = contentProvider;
}
/**
* Sets the input.
* @param input The input to set
*/
public void setInput(Collector input)
{
m_input = input;
}
}
Index: VersionView.java
===================================================================
RCS file: /cvsroot/metamorphosis/krysalis-version/src/java/org/krysalis/version/eclipse/plugin/views/VersionView.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** VersionView.java 18 Feb 2003 18:24:42 -0000 1.2
--- VersionView.java 24 Feb 2003 22:48:34 -0000 1.3
***************
*** 10,13 ****
--- 10,14 ----
import java.net.MalformedURLException;
import java.net.URL;
+ import java.util.ArrayList;
import org.eclipse.core.resources.IResource;
***************
*** 39,47 ****
public class VersionView extends ViewPart
{
- /** The view's identifier */
public static final String ID = VersionView.class.getName();
Collector m_input = null;
VersionContentProvider m_contentProvider = null;
VersionListViewer m_viewer = null;
--- 40,48 ----
public class VersionView extends ViewPart
{
public static final String ID = VersionView.class.getName();
Collector m_input = null;
VersionContentProvider m_contentProvider = null;
+ ArrayList m_classpathEntries = null;
VersionListViewer m_viewer = null;
***************
*** 149,161 ****
}
! public void setResource(String classpath, Collector input)
{
System.out.println("VersionView::setResource");
//Object[] versions = m_contentProvider.initialize(classpath, input);
! m_contentProvider.initialize(classpath);
setNewInput(input);
- // actualize tree
- //m_viewer.setContentProvider(m_contentProvider);
}
--- 150,170 ----
}
! public void setResource(ArrayList classpathEntries, Collector input)
{
System.out.println("VersionView::setResource");
//Object[] versions = m_contentProvider.initialize(classpath, input);
!
! if(classpathEntries != null)
! {
! m_classpathEntries = classpathEntries;
! System.out.println("Size of the classpath entry is ["
! + m_classpathEntries.size() + "]");
! }
!
! m_contentProvider.initialize(classpathEntries);
! // actualize tree
! m_viewer.setContentProvider(m_contentProvider);
setNewInput(input);
}
***************
*** 325,328 ****
--- 334,373 ----
{
m_viewer = viewer;
+ }
+
+ /**
+ * Returns the classpathEntries.
+ * @return ArrayList
+ */
+ public ArrayList getClasspathEntries()
+ {
+ return m_classpathEntries;
+ }
+
+ /**
+ * Returns the contentProvider.
+ * @return VersionContentProvider
+ */
+ public VersionContentProvider getContentProvider()
+ {
+ return m_contentProvider;
+ }
+
+ /**
+ * Sets the classpathEntries.
+ * @param classpathEntries The classpathEntries to set
+ */
+ public void setClasspathEntries(ArrayList classpathEntries)
+ {
+ m_classpathEntries = classpathEntries;
+ }
+
+ /**
+ * Sets the contentProvider.
+ * @param contentProvider The contentProvider to set
+ */
+ public void setContentProvider(VersionContentProvider contentProvider)
+ {
+ m_contentProvider = contentProvider;
}
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.