Thread overview | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
April 05, 2009 What's the problem with IMenuListener | ||||
---|---|---|---|---|
| ||||
switched to dwt2, jface IMenuListener causes problem, the gui is not responsed when acition.sebEnalbed(false), how to fix this?
thanks!
--
yidabu <yidabu.spam@gmail.com> http://www.dsource.org/projects/dwin/
D 语言-中文(D Chinese): http://www.d-programming-language-china.org/ http://bbs.d-programming-language-china.org/ http://dwin.d-programming-language-china.org/ http://scite4d.d-programming-language-china.org/
|
April 05, 2009 Re: What's the problem with IMenuListener | ||||
---|---|---|---|---|
| ||||
Posted in reply to yidabu | yidabu schrieb:
> switched to dwt2, jface IMenuListener causes problem, the gui is not responsed when acition.sebEnalbed(false), how to fix this?
>
> thanks!
>
>
Like you reported in the IRC, this is solved.
Frank
|
April 06, 2009 Re: What's the problem with IMenuListener | ||||
---|---|---|---|---|
| ||||
Posted in reply to Frank Benoit | On Sun, 05 Apr 2009 13:59:58 +0200 Frank Benoit <keinfarbton@googlemail.com> wrote: > yidabu schrieb: > > switched to dwt2, jface IMenuListener causes problem, the gui is not responsed when acition.sebEnalbed(false), how to fix this? > > > > thanks! > > > > > > Like you reported in the IRC, this is solved. > Frank seems still not works. I tried another app, Singleton removed from MenuListener, problem again. I Tried to build dwt2 lib by dsss, get error: dwt2\org.eclipse.core.jobs\src\org\eclipse\core\internal\jobs\Worker.d(24): modu le org.eclipse.osgi.util.NLS is in multiple packages org.eclipse.osgi.util.NLS dwt2\org.eclipse.core.runtime\src\org\eclipse\core\runtime\ILog.d(19): module or g.eclipse.osgi.framework.Bundle is in multiple packages org.eclipse.osgi.framewo rk.Bundle dwt2\org.eclipse.text\src\org\eclipse\jface\text\templates\TemplateTranslator.d( 29): module java.util.LinkedHashmap is in multiple packages java.util.LinkedHash map fiexed the name issues, to build dwt2.lib by dsss 0.75 now, It will take several hours to build.... -- yidabu <yidabu.spam@gmail.com> http://www.dsource.org/projects/dwin/ D 语言-中文(D Chinese): http://www.d-programming-language-china.org/ http://bbs.d-programming-language-china.org/ http://dwin.d-programming-language-china.org/ http://scite4d.d-programming-language-china.org/ |
April 06, 2009 Re: What's the problem with IMenuListener | ||||
---|---|---|---|---|
| ||||
Posted in reply to yidabu | On Mon, 6 Apr 2009 09:28:24 +0800 yidabu <dyuyan.spam@gmail.com> wrote: > On Sun, 05 Apr 2009 13:59:58 +0200 > Frank Benoit <keinfarbton@googlemail.com> wrote: > > > yidabu schrieb: > > > switched to dwt2, jface IMenuListener causes problem, the gui is not responsed when acition.sebEnalbed(false), how to fix this? > > > > > > thanks! > > > > > > > > > > Like you reported in the IRC, this is solved. > > Frank > > > seems still not works. > > I tried another app, Singleton removed from MenuListener, problem again. I Tried to build dwt2 lib by dsss, get error: > > dwt2\org.eclipse.core.jobs\src\org\eclipse\core\internal\jobs\Worker.d(24): modu le org.eclipse.osgi.util.NLS is in multiple packages org.eclipse.osgi.util.NLS dwt2\org.eclipse.core.runtime\src\org\eclipse\core\runtime\ILog.d(19): module or g.eclipse.osgi.framework.Bundle is in multiple packages org.eclipse.osgi.framewo rk.Bundle dwt2\org.eclipse.text\src\org\eclipse\jface\text\templates\TemplateTranslator.d( 29): module java.util.LinkedHashmap is in multiple packages java.util.LinkedHash map > > fiexed the name issues, to build dwt2.lib by dsss 0.75 now, It will take several hours to build.... Building org.eclipse.core.jobs org\eclipse\core\internal\jobs\WorkerPool.d(84): redundant protection attribute org\eclipse\core\internal\jobs\WorkerPool.d(167): redundant protection attribute org\eclipse\core\internal\jobs\ThreadJob.d(80): redundant protection attribute org\eclipse\core\internal\jobs\InternalJob.d(178): redundant protection attribut e org\eclipse\core\internal\jobs\InternalJob.d(185): redundant protection attribut e org\eclipse\core\internal\jobs\InternalJob.d(227): redundant protection attribut e org\eclipse\core\internal\jobs\InternalJob.d(259): redundant protection attribut e rake aborted! compile error module org.eclipse.core.runtime.Platform Line:27 import org.eclipse.osgi.framework.Bundle; should be: import osgi.framework.Bundle; -- yidabu <yidabu.spam@gmail.com> http://www.dsource.org/projects/dwin D 语言-中文(D Chinese): http://www.d-programming-language-china.org/ http://bbs.d-programming-language-china.org/ http://dwin.d-programming-language-china.org/ http://scite4d.d-programming-language-china.org/ |
April 06, 2009 Re: What's the problem with IMenuListener | ||||
---|---|---|---|---|
| ||||
Posted in reply to yidabu | On Mon, 6 Apr 2009 12:18:15 +0800 yidabu <dyuyan.spam@gmail.com> wrote: > On Mon, 6 Apr 2009 09:28:24 +0800 > yidabu <dyuyan.spam@gmail.com> wrote: > > > On Sun, 05 Apr 2009 13:59:58 +0200 > > Frank Benoit <keinfarbton@googlemail.com> wrote: > > > > > yidabu schrieb: > > > > switched to dwt2, jface IMenuListener causes problem, the gui is not responsed when acition.sebEnalbed(false), how to fix this? > > > > > > > > thanks! > > > > > > > > > > > > > > Like you reported in the IRC, this is solved. > > > Frank > > > > > > seems still not works. > > > > I tried another app, Singleton removed from MenuListener, problem again. I Tried to build dwt2 lib by dsss, get error: > > > > dwt2\org.eclipse.core.jobs\src\org\eclipse\core\internal\jobs\Worker.d(24): modu le org.eclipse.osgi.util.NLS is in multiple packages org.eclipse.osgi.util.NLS dwt2\org.eclipse.core.runtime\src\org\eclipse\core\runtime\ILog.d(19): module or g.eclipse.osgi.framework.Bundle is in multiple packages org.eclipse.osgi.framewo rk.Bundle dwt2\org.eclipse.text\src\org\eclipse\jface\text\templates\TemplateTranslator.d( 29): module java.util.LinkedHashmap is in multiple packages java.util.LinkedHash map > > > > fiexed the name issues, to build dwt2.lib by dsss 0.75 now, It will take several hours to build.... > > Building org.eclipse.core.jobs > org\eclipse\core\internal\jobs\WorkerPool.d(84): redundant protection attribute > org\eclipse\core\internal\jobs\WorkerPool.d(167): redundant protection attribute > > org\eclipse\core\internal\jobs\ThreadJob.d(80): redundant protection attribute > org\eclipse\core\internal\jobs\InternalJob.d(178): redundant protection attribut > e > org\eclipse\core\internal\jobs\InternalJob.d(185): redundant protection attribut > e > org\eclipse\core\internal\jobs\InternalJob.d(227): redundant protection attribut > e > org\eclipse\core\internal\jobs\InternalJob.d(259): redundant protection attribut > e > rake aborted! > compile error > > > > module org.eclipse.core.runtime.Platform > Line:27 import org.eclipse.osgi.framework.Bundle; should be: > import osgi.framework.Bundle; > build dwt2.lib by dsss 0.75, the problem is not solved, but the exe size is went down from 10.9 MB to 4.9 MB (the old one with dwt-win, dmd 1.037 is 4.3MB) -- yidabu <yidabu.spam@gmail.com> http://www.dsource.org/projects/dwin D 语言-中文(D Chinese): http://www.d-programming-language-china.org/ http://bbs.d-programming-language-china.org/ http://dwin.d-programming-language-china.org/ http://scite4d.d-programming-language-china.org/ |
April 07, 2009 ACCESS_VIOLATION at ActionContributionItem.d:193 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Frank Benoit | On Sun, 05 Apr 2009 13:59:58 +0200 Frank Benoit <keinfarbton@googlemail.com> wrote: > yidabu schrieb: > > switched to dwt2, jface IMenuListener causes problem, the gui is not responsed when acition.sebEnalbed(false), how to fix this? > > > > thanks! > > > > > > Like you reported in the IRC, this is solved. > Frank captured exception by ddbg when mouse right click on treeviewer: Unhandled Exception: EXCEPTION_ACCESS_VIOLATION(0xc0000005) at org.eclipse.jface.action.ActionContributionItem.ActionContributionItem.actionPropertyChange.org.eclipse.jface.util.PropertyChangeEvent.PropertyChangeEvent.__dgliteral1.org.eclipse.jface.util.PropertyChangeEvent.PropertyChangeEvent org.eclipse.jface\src\org\eclipse\jface\action\ActionContributionItem.d:193 (0x004830fd) thread(3436) ->us #0 org.eclipse.jface.action.ActionContributionItem.ActionContributionItem.actionPropertyChange () at org.eclipse.jface\src\org\eclipse\jface\action\ActionContributionItem.d:193 #1 0x0048565a in java.lang.Runnable._DgRunnableT! () at imp\java\lang\Runnable.di:57 #2 0x00572f19 in void org.eclipse.swt.widgets.RunnableLock.RunnableLock.run(void*) () from RunnableLock what's the exceptin means? I tested a sample code, it's works fine, I can not give you a sample to reproduce the exception. It seems a thread issue with my code, how to fix this? the app works fine with dwt-win, dmd 1.037 and dsss(lib), now I built dwt2.lib by dsss, get the sampe exception. I ported my code to dwt2, I spend twot days to tried to figured the thread issue out, but failed. thanks! My code like this: auto menuManager = new MenuManager("#PopUp"); menuManager.setRemoveAllWhenShown(true); menuManager.addMenuListener(new MyMenuListener); auto menu = menuManager.createContextMenu( treeViewer.getTree() ); treeViewer.getTree.setMenu( menu ); class MyMenuListener : IMenuListener { void menuAboutToShow(IMenuManager manager) { fillContextMenu(manager); } } public class TestAction : Action { public this() { super( "test", null); } void run() {} } void fillContextMenu(IMenuManager manager) { manager.add( new TestAction ); } -- yidabu <yidabu.spam@gmail.com> http://www.dsource.org/projects/dwin/ D 语言-中文(D Chinese): http://www.d-programming-language-china.org/ http://bbs.d-programming-language-china.org/ http://dwin.d-programming-language-china.org/ http://scite4d.d-programming-language-china.org/ |
April 08, 2009 sample to re-produce the ACCESS_VIOLATION | ||||
---|---|---|---|---|
| ||||
Posted in reply to yidabu | dynamic change Action's text in menuAboutToShow, will get exception: rg.eclipse.swt.SWTException.SWTException: Failed to execute runnable object.Exception: Access Violation - Read at address 0x9090911b /******************************************************************************* * Copyright (c) 2006 Tom Schindl and others. * All rights reserved. This program and the accompanying materials * are 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: * Tom Schindl - initial API and implementation * Port to the D programming language: * wbaxter at gmail dot com *******************************************************************************/ module org.eclipse.jface.snippets.viewers.Snippet002TreeViewer; import org.eclipse.swt.SWT; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.jface.viewers.Viewer; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import java.lang.all; import tango.util.Convert; import tango.math.random.Kiss; import tango.io.Stdout; import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.action.IMenuListener; import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.Action; import org.eclipse.jface.resource.ImageDescriptor; /** * A simple TreeViewer to demonstrate usage * * @author Tom Schindl <tom.schindl@bestsolution.at> * */ class Snippet002TreeViewer { private class MyContentProvider : ITreeContentProvider { /* (non-Javadoc) * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object) */ public Object[] getElements(Object inputElement) { return (cast(MyModel)inputElement).child/*.dup*/; } /* (non-Javadoc) * @see org.eclipse.jface.viewers.IContentProvider#dispose() */ public void dispose() { } /* (non-Javadoc) * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object) */ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } /* (non-Javadoc) * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object) */ public Object[] getChildren(Object parentElement) { return getElements(parentElement); } /* (non-Javadoc) * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object) */ public Object getParent(Object element) { if( element is null) { return null; } return (cast(MyModel)element).parent; } /* (non-Javadoc) * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object) */ public bool hasChildren(Object element) { return (cast(MyModel)element).child.length > 0; } } public class MyModel { public MyModel parent; public MyModel[] child; public int counter; public this(int counter, MyModel parent) { this.parent = parent; this.counter = counter; } public String toString() { String rv = "Item "; if( parent !is null ) { rv = parent.toString() ~ "."; } rv ~= to!(char[])(counter); return rv; } } public class TestAction : Action { public this() { super("&Test Action@Ctrl+X", ImageDescriptor.createFromFile(getImportData!("eclipse-red-16.png"))); //super("&Test Action@Ctrl+X", null); } public void run() { } } public class Test2Action : Action { public this() { super("&Test2 Action@Ctrl+X", ImageDescriptor.createFromFile(getImportData!("eclipse-red-16.png"))); //super("&Test Action@Ctrl+X", null); } public void run() { } } class MyListener : IMenuListener { void menuAboutToShow(IMenuManager manager) { auto t = Kiss.instance.natural(0,2); if( t == 0) { testAction.setText("&new Test Action@Ctrl+Alt+C"); manager.add(testAction); test2Action.setText("new Test2 Action"); manager.add(test2Action); } else { testAction.setText("Test Action@Ctrl+Alt+T"); manager.add(testAction); } } } // TestAction testAction; Test2Action test2Action; public this(Shell shell) { testAction = new TestAction(); test2Action = new Test2Action(); TreeViewer v = new TreeViewer(shell); v.setLabelProvider(new LabelProvider()); v.setContentProvider(new MyContentProvider()); v.setInput(createModel()); auto menuManager = new MenuManager(); menuManager.setRemoveAllWhenShown(true); menuManager.addMenuListener( new MyListener()); auto menu = menuManager.createContextMenu( v.getControl() ); v.getControl.setMenu( menu ); } private MyModel createModel() { MyModel root = new MyModel(0,null); root.counter = 0; MyModel tmp; for( int i = 1; i < 10; i++ ) { tmp = new MyModel(i, root); root.child ~= tmp; for( int j = 1; j < i; j++ ) { tmp.child ~= new MyModel(j,tmp); } } return root; } } void main() { Display display = new Display (); Shell shell = new Shell(display); shell.setLayout(new FillLayout()); new Snippet002TreeViewer(shell); shell.open (); while (!shell.isDisposed ()) { if (!display.readAndDispatch ()) display.sleep (); } display.dispose (); } -- yidabu <yidabu.spam@gmail.com> http://www.dsource.org/projects/dwin/ D 语言-中文(D Chinese): http://www.d-programming-language-china.org/ http://bbs.d-programming-language-china.org/ http://dwin.d-programming-language-china.org/ http://scite4d.d-programming-language-china.org/ |
April 08, 2009 Re: sample to re-produce the ACCESS_VIOLATION | ||||
---|---|---|---|---|
| ||||
Posted in reply to yidabu | yidabu schrieb: > dynamic change Action's text in menuAboutToShow, will get exception: > > rg.eclipse.swt.SWTException.SWTException: Failed to execute runnable > > object.Exception: Access Violation - Read at address 0x9090911b > > Thanks for this test case. It is fixed now. http://hg.dsource.org/projects/dwt2/rev/bf0426bfc6e0 |
Copyright © 1999-2021 by the D Language Foundation