SWT Designer allows you to create the views, editors, perspectives, pref pages, composites, etc. that comprise Eclipse SWT & RCP applications and plug-ins.
Moderators: Konstantin.Scheglov, gnebling, Alexander.Mitin, jwren, Eric Clayberg
by LORDs_diakonos » Wed May 04, 2005 11:07 am
I am only getting this in Linux. On a different machine in Wondows it worked fine. See stack trace below.
eclipse.buildId=I20050401-1645
java.fullversion=J2RE 1.4.2 IBM build cxia32142sr1a-20050209 (JIT enabled: jitc)
BootLoader constants: OS=linux, ARCH=x86, WS=gtk, NL=en_US
Command-line arguments: -os linux -ws gtk -arch x86
!ENTRY com.swtdesigner 4 4 2005-05-04 14:03:06.97
!MESSAGE Designer internal error: null
!STACK 0
java.lang.NullPointerException
at com.swtdesigner.model.JavaInfo.isRepresentedBy(JavaInfo.java:3837)
at com.swtdesigner.model.swt.layout.LayoutDataInfo$1.visit(LayoutDataInfo.java:58)
at org.eclipse.jdt.core.dom.MethodInvocation.accept0(MethodInvocation.java:236)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java(Compiled Code))
at com.swtdesigner.model.util.ast.ASTNodeList.accept(ASTNodeList.java:194)
at com.swtdesigner.model.swt.layout.LayoutDataInfo.findParentSetLayoutDataInvocation(LayoutDataInfo.java:51)
at com.swtdesigner.model.swt.layout.LayoutDataInfo.acceptAsParent(LayoutDataInfo.java:42)
at com.swtdesigner.model.parser.JavaInfoParser.isParentAndChild(JavaInfoParser.java:814)
at com.swtdesigner.model.parser.JavaInfoParser.findParentFor(JavaInfoParser.java:732)
at com.swtdesigner.model.parser.JavaInfoParser.getRootNodes(JavaInfoParser.java:322)
at com.swtdesigner.gef.DesignerEditor.parseCompilationUnit(DesignerEditor.java:807)
at com.swtdesigner.gef.DesignerEditor.handleActivate(DesignerEditor.java:741)
at com.swtdesigner.gef.DesignerEditor.handleActivate(DesignerEditor.java:707)
at com.swtdesigner.editors.MultiPageEditor.showDesignEditor(MultiPageEditor.java:306)
at com.swtdesigner.editors.MultiPageEditor$2.widgetSelected(MultiPageEditor.java:156)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:89)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java(Compiled Code))
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1012)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1036)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1021)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:891)
at org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:3141)
at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:1925)
at org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:287)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java(Compiled Code))
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1012)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2778)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2472)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1570)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1534)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:306)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143)
at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:103)
at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:228)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:156)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:85)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:58)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:60)
at java.lang.reflect.Method.invoke(Method.java:391)
at org.eclipse.core.launcher.Main.invokeFramework(Main.java:315)
at org.eclipse.core.launcher.Main.basicRun(Main.java:268)
at org.eclipse.core.launcher.Main.run(Main.java:942)
at org.eclipse.core.launcher.Main.main(Main.java:926)
[/b]
-
LORDs_diakonos
-
by LORDs_diakonos » Wed May 04, 2005 12:54 pm
OK apparently it does blow up on windows. It ididn't at first but when i shut eclipse down and restated it the problem starting happening.
-
LORDs_diakonos
-
by Eric Clayberg » Wed May 04, 2005 2:16 pm
The exception does not suggest what the problem is.
I need to know the exact version of Designer you are using, and I need to see a test case (ideally the window you are trying to edit).
-
Eric Clayberg
- Moderator
-
- Posts: 4503
- Joined: Tue Sep 30, 2003 6:39 am
- Location: Boston, MA USA
-
by LORDs_diakonos » Wed May 04, 2005 2:22 pm
ok I am using the latest build I downloaded it today. I can paste my code but you won't be able to build cause of depenencies.
- Code: Select all
package org.nmi.iris.ui;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.SashForm;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeItem;
import org.eclipse.swt.graphics.*;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.events.*;
import org.vafada.swtcalendar.*;
import java.util.*;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import java.lang.System;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerSorter;
import java.text.*;
import org.nmi.iris.util.*;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
public class Iris {
class TreeContentProvider implements IStructuredContentProvider, ITreeContentProvider {
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
}
public void dispose() {
}
public Object[] getElements(Object inputElement) {
// Session[] ses = null;
SessionTreeNode[] stn = null;
try
{
ArrayList ses = null;
SessionTreeContext stc = (SessionTreeContext)inputElement;
ses = Session.loadSessions(stc.getStart(), stc.getEnd(), stc.getPersonID());
stn = new SessionTreeNode[ses.size()];
for(int idx=0;ses.size()>idx;idx++)
{
Session s = (Session)ses.get(idx);
stn[idx] = new SessionTreeNode(s);
}
}
catch(Exception ex)
{
System.out.print(ex);
}
return stn;
}
public Object[] getChildren(Object element) {
SessionTreeNode[] stn = null;
stn = ((SessionTreeNode)element).getChildren();
return stn;
}
public Object getParent(Object element) {
SessionTreeNode stn = null;
stn = ((SessionTreeNode)element).getParent();
return stn;
}
public boolean hasChildren(Object element)
{
return ((SessionTreeNode)element).hasChildren();
}
}
private Tree tree;
private static final int COLUMN_NAME = 0;
private static final int COLUMN_BLOCKS = 1;
private static final int COLUMN_PERCENT_BLOCKED = 2;
private static final int COLUMN_HOTLIST = 3;
private static final String VERSION = "V0.1";
protected Shell shell;
private Table table;
private Display display;
private Date start = null;
private Date end = null;
private int personIDSelected = 0;
SashForm sashForm;
TabFolder tabFolder;
class Sorter extends ViewerSorter {
final int ASCENDING = 0;
final int DESCENDING = 1;
int column;
int direction;
public void doSort(int column)
{
if (column == this.column)
{
direction = 1 - direction;
}
else
{
this.column = column;
direction = ASCENDING;
}
}
public int compare(Viewer viewer, Object e1, Object e2)
{
int rc =0;
SuspectUser su1 = (SuspectUser) e1;
SuspectUser su2 = (SuspectUser) e2;
switch (column)
{
case COLUMN_NAME:
rc = collator.compare(su1.getPerson().getFirstName(), su2.getPerson().getLastName());
break;
case COLUMN_BLOCKS:
rc = su1.getBlocks() > su2.getBlocks() ? 1: -1;
break;
case COLUMN_PERCENT_BLOCKED:
rc = su1.getPercentBlocked() > su2.getPercentBlocked() ? 1: -1;
break;
case COLUMN_HOTLIST:
rc = su1.getHostListNumber() > su2.getHostListNumber() ? 1: -1;
break;
}
//if descending flip the direction
if (direction == DESCENDING)
{
rc = -rc;
}
return rc;
}
}
class TableLabelProvider extends LabelProvider implements ITableLabelProvider {
public String getColumnText(Object element, int columnIndex)
{
SuspectUser su = (SuspectUser)element;
String text = "";
switch (columnIndex)
{
case COLUMN_NAME:
text = su.getPerson().getLastName() + " " + su.getPerson().getFirstName();
break;
case COLUMN_BLOCKS:
text = String.valueOf(su.getBlocks());
break;
case COLUMN_PERCENT_BLOCKED:
text = String.valueOf(su.getPercentBlocked());
break;
case COLUMN_HOTLIST:
text = String.valueOf(su.getHostListNumber());
break;
}
return text;
}
public Image getColumnImage(Object element, int columnIndex)
{
return null;
}
}
class ContentProvider implements IStructuredContentProvider {
public Object[] getElements(Object inputElement)
{
SuspectUser[] sus = null;
try
{
sus = (SuspectUser[])SuspectUser.getSuspectUsers().toArray(new SuspectUser[0]);
}
catch (Exception ex)
{
System.out.print(ex);
}
return sus;
}
public void dispose()
{
}
public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
{
}
}
public static void main(String[] args) {
try {
Iris window = new Iris();
window.open();
} catch (Exception e) {
e.printStackTrace();
}
}
public void open() {
display = Display.getDefault();
createContents();
shell.open();
shell.layout();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
}
protected void createContents() {
shell = new Shell();
shell.setLayout(new FillLayout());
shell.setSize(800, 600);
shell.setText("IRIS");
final Menu menu = new Menu(shell, SWT.BAR);
shell.setMenuBar(menu);
final MenuItem menuFile = new MenuItem(menu, SWT.CASCADE);
menuFile.setText("File");
final Menu menu_1 = new Menu(menuFile);
menuFile.setMenu(menu_1);
final MenuItem menuItemExit = new MenuItem(menu_1, SWT.NONE);
menuItemExit.setText("Exit");
final MenuItem menuHelp = new MenuItem(menu, SWT.CASCADE);
menuHelp.setText("Menu");
final Menu menu_2 = new Menu(menuHelp);
menuHelp.setMenu(menu_2);
final MenuItem menuItemAbout = new MenuItem(menu_2, SWT.NONE);
menuItemAbout.setText("About");
//add listener to exit menu item
menuItemExit.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event e) {
// shell.dispose();
display.dispose();
}
});
menuItemAbout.addListener(SWT.Selection, new Listener() {
private Image aboutImage;
private Shell aboutShell;
public void handleEvent(Event e) {
aboutShell = new Shell(shell, SWT.DIALOG_TRIM);
aboutShell.setSize(200, 250);
aboutShell.setText("About...");
//load an Image
aboutImage = new Image(display, this.getClass().getResourceAsStream("/splash.jpg"));
aboutShell.addPaintListener(new PaintListener() {
public void paintControl(PaintEvent e) {
//Get the graphics context
GC gc = new GC(aboutShell);
//Write a string to the shell
gc.drawString(
"IRIS " + VERSION,
30,
10);
//draw a blue rectangle
Color blue = display.getSystemColor(SWT.COLOR_BLUE);
gc.setForeground(blue);
gc.drawRectangle(30, 30, 135, 165);
//draw an image
gc.drawImage(aboutImage, 48, 48);
}
});
aboutShell.addDisposeListener(new DisposeListener() {
public void widgetDisposed(DisposeEvent e) {
//when the shell is closed, dispose of the Image
aboutImage.dispose();
}
});
aboutShell.open();
}
});
tabFolder = new TabFolder(shell, SWT.NONE);
final TabItem userSession = new TabItem(tabFolder, SWT.NONE);
userSession.setText("Review");
sashForm = new SashForm(tabFolder, SWT.NONE);
final Composite lComp = new Composite(sashForm, SWT.NONE);
lComp.setLayout(new FillLayout());
final TableViewer tableViewer = new TableViewer(lComp, SWT.FULL_SELECTION | SWT.BORDER);
tableViewer.setSorter(new Sorter());
tableViewer.setLabelProvider(new TableLabelProvider());
tableViewer.setContentProvider(new ContentProvider());
table = tableViewer.getTable();
table.setLinesVisible(true);
table.setHeaderVisible(true);
final TableColumn tableColumnName = new TableColumn(table, SWT.NONE);
tableColumnName.setWidth(151);
tableColumnName.setText("Name");
tableColumnName.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
((Sorter)tableViewer.getSorter()).doSort(COLUMN_NAME);
tableViewer.refresh();
}
});
final TableColumn tableColumnBlocks = new TableColumn(table, SWT.NONE);
tableColumnBlocks.setWidth(26);
tableColumnBlocks.setText("#");
tableColumnBlocks.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
((Sorter)tableViewer.getSorter()).doSort(COLUMN_BLOCKS);
tableViewer.refresh();
}
});
final TableColumn tableColumnPercentBlocked = new TableColumn(table, SWT.NONE);
tableColumnPercentBlocked.setWidth(32);
tableColumnPercentBlocked.setText("%");
tableColumnPercentBlocked.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
((Sorter)tableViewer.getSorter()).doSort(COLUMN_PERCENT_BLOCKED);
tableViewer.refresh();
}
});
final TableColumn tableColumnHotList = new TableColumn(table, SWT.NONE);
tableColumnHotList.setWidth(30);
tableColumnHotList.setText("Hot");
tableColumnHotList.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
((Sorter)tableViewer.getSorter()).doSort(COLUMN_HOTLIST);
tableViewer.refresh();
}
});
//populate the Suspect Users table viewer
try{
tableViewer.setInput(SuspectUser.getSuspectUsers());
}
catch (Exception ex)
{
System.out.print(ex);
}
//the right side of the interface
final Composite rComp = new Composite(sashForm, SWT.NONE);
rComp.setLayout(new FormLayout());
final SimpleDateFormat formatter = new SimpleDateFormat("MMM dd yyyy");
final Text startdate = new Text(rComp, SWT.BORDER);
final FormData formData_2 = new FormData();
formData_2.bottom = new FormAttachment(0, 35);
formData_2.top = new FormAttachment(0, 5);
formData_2.right = new FormAttachment(0, 120);
formData_2.left = new FormAttachment(0, 5);
startdate.setLayoutData(formData_2);
Button startdateB = new Button(rComp, SWT.PUSH);
final FormData formData_1 = new FormData();
formData_1.left = new FormAttachment(0, 126);
formData_1.right = new FormAttachment(0, 181);
formData_1.bottom = new FormAttachment(0, 35);
formData_1.top = new FormAttachment(0, 5);
startdateB.setLayoutData(formData_1);
startdateB.setText("Start");
startdateB.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
final CalendarDialog cal = new CalendarDialog(display);
cal.addDateChangedListener(new SWTCalendarListener() {
public void dateChanged(SWTCalendarEvent calendarEvent) {
startdate.setText(formatter.format(calendarEvent.getCalendar().getTime()));
}
});
if (startdate.getText() != null && startdate.getText().length() > 0) {
try {
start = formatter.parse(startdate.getText());
cal.setDate(start);
} catch (ParseException pe) {
}
}
cal.open();
}
});
final Text t = new Text(rComp, SWT.BORDER);
final FormData formData_3 = new FormData();
formData_3.top = new FormAttachment(0, 5);
formData_3.left = new FormAttachment(0, 186);
formData_3.right = new FormAttachment(0, 311);
formData_3.bottom = new FormAttachment(0, 35);
t.setLayoutData(formData_3);
Button b = new Button(rComp, SWT.PUSH);
final FormData formData_4 = new FormData();
formData_4.left = new FormAttachment(0, 315);
formData_4.top = new FormAttachment(0, 5);
formData_4.bottom = new FormAttachment(0, 35);
formData_4.right = new FormAttachment(0, 365);
b.setLayoutData(formData_4);
b.setText("End");
b.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
final CalendarDialog cal = new CalendarDialog(display);
cal.addDateChangedListener(new SWTCalendarListener() {
public void dateChanged(SWTCalendarEvent calendarEvent) {
t.setText(formatter.format(calendarEvent.getCalendar().getTime()));
}
});
if (t.getText() != null && t.getText().length() > 0) {
try {
end = formatter.parse(t.getText());
cal.setDate(end);
} catch (ParseException pe) {
}
}
cal.open();
}
});
final Button cbFileExt = new Button(rComp, SWT.CHECK);
final FormData formDatacbFileExt = new FormData();
formDatacbFileExt.top = new FormAttachment(0, 43);
formDatacbFileExt.left = new FormAttachment(0, 7);
cbFileExt.setLayoutData(formDatacbFileExt);
cbFileExt.setText("Ignored File Ext.");
final Button cbSuspect = new Button(rComp, SWT.CHECK);
final FormData formDatacbSuspect = new FormData();
formDatacbSuspect.left = new FormAttachment(0, 185);
formDatacbSuspect.top = new FormAttachment(0, 43);
cbSuspect.setLayoutData(formDatacbSuspect);
cbSuspect.setText("Suspect Only");
final Button cbImages = new Button(rComp, SWT.CHECK);
final FormData formDatacbImages = new FormData();
formDatacbImages.top = new FormAttachment(0, 43);
formDatacbImages.left = new FormAttachment(0, 340);
cbImages.setLayoutData(formDatacbImages);
cbImages.setText("Images");
tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent event) {
final TreeViewer trv = new TreeViewer(rComp, SWT.BORDER);
trv.setContentProvider(new TreeContentProvider());
tree = trv.getTree();
final FormData formDataTree = new FormData();
formDataTree.left = new FormAttachment(0, 10);
formDataTree.bottom = new FormAttachment(cbFileExt, 432, SWT.BOTTOM);
formDataTree.right = new FormAttachment(0, 597);
formDataTree.top = new FormAttachment(cbFileExt, 0, SWT.BOTTOM);
tree.setLayoutData(formDataTree);
trv.setInput(new SessionTreeContext(start, end, personIDSelected));
}
});
// final TreeViewer trv = new TreeViewer(rComp, SWT.BORDER);
// trv.setContentProvider(new TreeContentProvider());
// tree = trv.getTree();
// final FormData formDataTree = new FormData();
// formDataTree.left = new FormAttachment(0, 10);
// formDataTree.bottom = new FormAttachment(cbFileExt, 432, SWT.BOTTOM);
// formDataTree.right = new FormAttachment(0, 597);
// formDataTree.top = new FormAttachment(cbFileExt, 0, SWT.BOTTOM);
// tree.setLayoutData(formDataTree);
// final TreeItem tiSession = new TreeItem(tree, SWT.NONE);
// tiSession.setText("New item");
// final TreeItem tiRequest = new TreeItem(tiSession, SWT.NONE);
// tiRequest.setText("New item");
// trv.setInput(new Object());
userSession.setControl(sashForm);
final TabItem tab2 = new TabItem(tabFolder, SWT.NONE);
tab2.setText("Reports");
sashForm.setWeights(new int[] { 30, 100 });
final FormData fdSashForm = new FormData();
fdSashForm.bottom = new FormAttachment(100, -5);
fdSashForm.right = new FormAttachment(100, -5);
fdSashForm.top = new FormAttachment(0, 5);
fdSashForm.left = new FormAttachment(0, 5);
sashForm.setLayoutData(fdSashForm);
}
}
-
LORDs_diakonos
-
by LORDs_diakonos » Fri May 06, 2005 10:13 am
OK I got the designer to work a little though it still says "Unknown Window Type (Parsing Error)
I moved the tree out of the listener. I was going to do that anyways as I was just testing some things out.
What is the problem with the unknown window type though?
-
LORDs_diakonos
-
by Eric Clayberg » Fri May 06, 2005 12:18 pm
I could not reproduce the parsing problem, but that is likely due to the fact that I don't have all of the referenced pieces.
Were there any entries in your log file? The reason for the parse error should be listed there.
LORDs_diakonos wrote:OK I got the designer to work a little though it still says "Unknown Window Type (Parsing Error)
Does that happen even if you close and re-open the editor?
Last edited by
Eric Clayberg on Fri May 06, 2005 7:47 pm, edited 1 time in total.
-
Eric Clayberg
- Moderator
-
- Posts: 4503
- Joined: Tue Sep 30, 2003 6:39 am
- Location: Boston, MA USA
-
by LORDs_diakonos » Fri May 06, 2005 12:26 pm
It worked after I restarted eclipse
-
LORDs_diakonos
-
by Eric Clayberg » Sat May 07, 2005 6:27 pm
LORDs_diakonos wrote:It worked after I restarted eclipse
Was there ever anything in your .log file indicating the cause of the parsing problem?
-
Eric Clayberg
- Moderator
-
- Posts: 4503
- Joined: Tue Sep 30, 2003 6:39 am
- Location: Boston, MA USA
-
Return to SWT Designer
Who is online
Users browsing this forum: No registered users and 1 guest