Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 143856 Details for
Bug 285581
[Toolbar] Index not considered when adding items afterwards
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
patch+testcase
clipboard.txt (text/plain), 14.58 KB, created by
Benjamin Muskalla
on 2009-08-09 16:34:48 EDT
(
hide
)
Description:
patch+testcase
Filename:
MIME Type:
Creator:
Benjamin Muskalla
Created:
2009-08-09 16:34:48 EDT
Size:
14.58 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.rap.rwt.q07 >Index: src/org/eclipse/swt/internal/widgets/toolitemkit/PushToolItemLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/widgets/toolitemkit/PushToolItemLCA.java,v >retrieving revision 1.2 >diff -u -r1.2 PushToolItemLCA.java >--- src/org/eclipse/swt/internal/widgets/toolitemkit/PushToolItemLCA.java 17 Feb 2009 11:15:34 -0000 1.2 >+++ src/org/eclipse/swt/internal/widgets/toolitemkit/PushToolItemLCA.java 9 Aug 2009 20:34:36 -0000 >@@ -19,6 +19,7 @@ > import org.eclipse.swt.events.SelectionEvent; > import org.eclipse.swt.internal.widgets.ItemLCAUtil; > import org.eclipse.swt.internal.widgets.Props; >+import org.eclipse.swt.widgets.ToolBar; > import org.eclipse.swt.widgets.ToolItem; > > final class PushToolItemLCA extends ToolItemDelegateLCA { >@@ -44,10 +45,12 @@ > > void renderInitialization( final ToolItem toolItem ) throws IOException { > JSWriter writer = JSWriter.getWriterFor( toolItem ); >+ ToolBar toolBar = toolItem.getParent(); > Object[] args = new Object[]{ > WidgetUtil.getId( toolItem ), >- toolItem.getParent(), >- Boolean.valueOf( ( toolItem.getParent().getStyle() & SWT.FLAT ) != 0 ) >+ toolBar, >+ new Integer( toolBar.indexOf( toolItem ) ), >+ Boolean.valueOf( ( toolBar.getStyle() & SWT.FLAT ) != 0 ) > }; > writer.callStatic( CREATE_PUSH, args ); > } >Index: src/org/eclipse/swt/internal/widgets/toolitemkit/RadioToolItemLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/widgets/toolitemkit/RadioToolItemLCA.java,v >retrieving revision 1.5 >diff -u -r1.5 RadioToolItemLCA.java >--- src/org/eclipse/swt/internal/widgets/toolitemkit/RadioToolItemLCA.java 4 Jun 2009 11:48:55 -0000 1.5 >+++ src/org/eclipse/swt/internal/widgets/toolitemkit/RadioToolItemLCA.java 9 Aug 2009 20:34:36 -0000 >@@ -60,10 +60,10 @@ > void renderInitialization( final ToolItem toolItem ) throws IOException { > JSWriter writer = JSWriter.getWriterFor( toolItem ); > ToolBar bar = toolItem.getParent(); >- int myIndex = bar.indexOf( toolItem ); >+ int itemIndex = bar.indexOf( toolItem ); > ToolItem neighbour = null; >- if ( myIndex > 0 ) { >- neighbour = bar.getItem( myIndex - 1 ); >+ if ( itemIndex > 0 ) { >+ neighbour = bar.getItem( itemIndex - 1 ); > if( ( neighbour.getStyle() & SWT.RADIO ) == 0 ) { > neighbour = null; > } >@@ -71,6 +71,7 @@ > Object[] args = new Object[] { > WidgetUtil.getId( toolItem ), > toolItem.getParent(), >+ new Integer( itemIndex ), > toolItem.getSelection() ? "true" : null, > neighbour > }; >Index: src/org/eclipse/swt/internal/widgets/toolitemkit/SeparatorToolItemLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/widgets/toolitemkit/SeparatorToolItemLCA.java,v >retrieving revision 1.1 >diff -u -r1.1 SeparatorToolItemLCA.java >--- src/org/eclipse/swt/internal/widgets/toolitemkit/SeparatorToolItemLCA.java 13 Feb 2009 16:49:47 -0000 1.1 >+++ src/org/eclipse/swt/internal/widgets/toolitemkit/SeparatorToolItemLCA.java 9 Aug 2009 20:34:36 -0000 >@@ -17,8 +17,7 @@ > import org.eclipse.rwt.lifecycle.*; > import org.eclipse.swt.SWT; > import org.eclipse.swt.internal.widgets.WidgetAdapter; >-import org.eclipse.swt.widgets.Control; >-import org.eclipse.swt.widgets.ToolItem; >+import org.eclipse.swt.widgets.*; > > final class SeparatorToolItemLCA extends ToolItemDelegateLCA { > >@@ -43,10 +42,12 @@ > > void renderInitialization( final ToolItem toolItem ) throws IOException { > JSWriter writer = JSWriter.getWriterFor( toolItem ); >+ ToolBar toolBar = toolItem.getParent(); > Object[] args = new Object[]{ > WidgetUtil.getId( toolItem ), >- toolItem.getParent(), >- Boolean.valueOf( ( toolItem.getParent().getStyle() & SWT.FLAT ) != 0 ) >+ toolBar, >+ new Integer( toolBar.indexOf( toolItem ) ), >+ Boolean.valueOf( ( toolBar.getStyle() & SWT.FLAT ) != 0 ) > }; > writer.callStatic( CREATE_SEPARATOR, args ); > } >Index: src/org/eclipse/swt/internal/widgets/toolitemkit/DropDownToolItemLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/widgets/toolitemkit/DropDownToolItemLCA.java,v >retrieving revision 1.5 >diff -u -r1.5 DropDownToolItemLCA.java >--- src/org/eclipse/swt/internal/widgets/toolitemkit/DropDownToolItemLCA.java 7 Aug 2009 10:18:43 -0000 1.5 >+++ src/org/eclipse/swt/internal/widgets/toolitemkit/DropDownToolItemLCA.java 9 Aug 2009 20:34:36 -0000 >@@ -23,9 +23,7 @@ > import org.eclipse.swt.graphics.Rectangle; > import org.eclipse.swt.internal.widgets.ItemLCAUtil; > import org.eclipse.swt.internal.widgets.Props; >-import org.eclipse.swt.widgets.ToolItem; >-import org.eclipse.swt.widgets.Widget; >-import org.eclipse.swt.widgets.Display; >+import org.eclipse.swt.widgets.*; > > final class DropDownToolItemLCA extends ToolItemDelegateLCA { > >@@ -72,10 +70,12 @@ > > void renderInitialization( final ToolItem toolItem ) throws IOException { > JSWriter writer = JSWriter.getWriterFor( toolItem ); >+ ToolBar toolBar = toolItem.getParent(); > Object[] args = new Object[] { > WidgetUtil.getId( toolItem ), >- toolItem.getParent(), >- Boolean.valueOf( ( toolItem.getParent().getStyle() & SWT.FLAT ) != 0 ) >+ toolBar, >+ new Integer( toolBar.indexOf( toolItem ) ), >+ Boolean.valueOf( ( toolBar.getStyle() & SWT.FLAT ) != 0 ) > }; > writer.callStatic( CREATE_DROP_DOWN, args ); > } >Index: src/org/eclipse/swt/internal/widgets/toolitemkit/CheckToolItemLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/widgets/toolitemkit/CheckToolItemLCA.java,v >retrieving revision 1.4 >diff -u -r1.4 CheckToolItemLCA.java >--- src/org/eclipse/swt/internal/widgets/toolitemkit/CheckToolItemLCA.java 4 Jun 2009 11:48:55 -0000 1.4 >+++ src/org/eclipse/swt/internal/widgets/toolitemkit/CheckToolItemLCA.java 9 Aug 2009 20:34:36 -0000 >@@ -19,6 +19,7 @@ > import org.eclipse.swt.events.SelectionEvent; > import org.eclipse.swt.internal.widgets.ItemLCAUtil; > import org.eclipse.swt.internal.widgets.Props; >+import org.eclipse.swt.widgets.ToolBar; > import org.eclipse.swt.widgets.ToolItem; > > >@@ -52,13 +53,15 @@ > > void renderInitialization( final ToolItem toolItem ) throws IOException { > JSWriter writer = JSWriter.getWriterFor( toolItem ); >+ ToolBar toolBar = toolItem.getParent(); > Object[] args = new Object[] { > WidgetUtil.getId( toolItem ), >- toolItem.getParent() >+ toolBar, >+ new Integer( toolBar.indexOf( toolItem ) ) > }; > writer.callStatic( CREATE_CHECK, args ); > writer.set( "checked", toolItem.getSelection() ); >- if( ( toolItem.getParent().getStyle() & SWT.FLAT ) != 0 ) { >+ if( ( toolBar.getStyle() & SWT.FLAT ) != 0 ) { > writer.call( "addState", new Object[]{ "rwt_FLAT" } ); > } > } >Index: js/org/eclipse/swt/ToolItemUtil.js >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/js/org/eclipse/swt/ToolItemUtil.js,v >retrieving revision 1.7 >diff -u -r1.7 ToolItemUtil.js >--- js/org/eclipse/swt/ToolItemUtil.js 4 Jun 2009 11:48:55 -0000 1.7 >+++ js/org/eclipse/swt/ToolItemUtil.js 9 Aug 2009 20:34:36 -0000 >@@ -17,7 +17,7 @@ > qx.Class.define( "org.eclipse.swt.ToolItemUtil", { > > statics : { >- createSeparator : function( id, parent, isFlat ) { >+ createSeparator : function( id, parent, index, isFlat ) { > var sep = new qx.ui.toolbar.Separator(); > var line = sep.getFirstChild(); > sep.setUserData( "line", line ); >@@ -27,7 +27,7 @@ > } > org.eclipse.swt.WidgetManager.getInstance().add( sep, id, false ); > sep.setParent( parent ); >- parent.add( sep ); >+ parent.addAt( sep, index ); > }, > > setControl : function( sep, control ) { >@@ -45,10 +45,10 @@ > } > }, > >- createRadio : function( id, parent, selected, neighbour ) { >+ createRadio : function( id, parent, index, selected, neighbour ) { > var radio = new qx.ui.toolbar.RadioButton(); > radio.setDisableUncheck( true ); >- parent.add( radio ); >+ parent.addAt( radio, index ); > if( neighbour ) { > radio.radioManager = neighbour.radioManager; > } else { >@@ -66,7 +66,7 @@ > org.eclipse.swt.ToolItemUtil._registerMouseListeners( radio ); > }, > >- createPush : function( id, parent, isFlat ) { >+ createPush : function( id, parent, index, isFlat ) { > var push = new qx.ui.toolbar.Button(); > if( isFlat ) { > push.addState( "rwt_FLAT" ); >@@ -75,13 +75,13 @@ > push.setLabel( "(empty)" ); > push.getLabelObject().setMode( qx.constant.Style.LABEL_MODE_HTML ); > push.setLabel( "" ); >- parent.add( push ); >+ parent.addAt( push, index ); > org.eclipse.swt.WidgetManager.getInstance().add( push, id, false ); > org.eclipse.swt.ToolItemUtil._registerMouseListeners( push ); > }, > >- createDropDown : function( id, parent, isFlat ) { >- org.eclipse.swt.ToolItemUtil.createPush( id, parent, isFlat ); >+ createDropDown : function( id, parent, index, isFlat ) { >+ org.eclipse.swt.ToolItemUtil.createPush( id, parent, index, isFlat ); > var button > = org.eclipse.swt.WidgetManager.getInstance().findWidgetById( id ); > var dropDown = new qx.ui.toolbar.Button( "", "widget/arrows/down.gif" ); >@@ -90,7 +90,7 @@ > if( isFlat ) { > dropDown.addState( "rwt_FLAT" ); > } >- parent.add( dropDown ); >+ parent.addAfter( dropDown, button ); > var dropDownId = org.eclipse.swt.ToolItemUtil._getDropDownId( button ); > org.eclipse.swt.WidgetManager.getInstance().add( dropDown, dropDownId, false ); > // Register enable listener that keeps enabled state of dropDown in sync >@@ -139,9 +139,9 @@ > } > }, > >- createCheck : function( id, parent ) { >+ createCheck : function( id, parent, index ) { > var button = new qx.ui.toolbar.CheckBox(); >- parent.add( button ); >+ parent.addAt( button, index ); > org.eclipse.swt.WidgetManager.getInstance().add( button, id, false ); > org.eclipse.swt.ToolItemUtil._registerMouseListeners( button ); > }, >#P org.eclipse.rap.rwt.q07.test >Index: src/org/eclipse/swt/internal/widgets/toolitemkit/ToolItemLCA_Test.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt.test/org.eclipse.rap.rwt.q07.test/src/org/eclipse/swt/internal/widgets/toolitemkit/ToolItemLCA_Test.java,v >retrieving revision 1.8 >diff -u -r1.8 ToolItemLCA_Test.java >--- src/org/eclipse/swt/internal/widgets/toolitemkit/ToolItemLCA_Test.java 7 Aug 2009 10:18:41 -0000 1.8 >+++ src/org/eclipse/swt/internal/widgets/toolitemkit/ToolItemLCA_Test.java 9 Aug 2009 20:34:38 -0000 >@@ -225,6 +225,28 @@ > item.setDisabledImage( null ); > assertSame( enabledImage, ToolItemLCAUtil.getImage( item ) ); > } >+ >+ public void testIndexOnInitialize() throws Exception { >+ Fixture.fakeResponseWriter(); >+ Display display = new Display(); >+ Shell shell = new Shell( display, SWT.NONE ); >+ ToolBar tb = new ToolBar( shell, SWT.NONE ); >+ final ToolItem item1 = new ToolItem( tb, SWT.PUSH ); >+ final ToolItem item2 = new ToolItem( tb, SWT.PUSH ); >+ shell.open(); >+ ToolItemLCA itemLCA = new ToolItemLCA(); >+ itemLCA.renderInitialization( item1 ); >+ itemLCA.renderInitialization( item2 ); >+ String parent = "wm.findWidgetById( \"" + WidgetUtil.getId( tb )+ "\" )"; >+ String expected = "createPush( \"" + WidgetUtil.getId( item1 ) + "\", " + parent + ", 0, false );"; >+ assertTrue( Fixture.getAllMarkup().indexOf( expected ) != -1 ); >+ expected = "createPush( \"" + WidgetUtil.getId( item2 ) + "\", " + parent + ", 1, false );"; >+ assertTrue( Fixture.getAllMarkup().indexOf( expected ) != -1 ); >+ final ToolItem item0 = new ToolItem( tb, SWT.PUSH, 0 ); >+ itemLCA.renderInitialization( item0 ); >+ expected = "createPush( \"" + WidgetUtil.getId( item0 ) + "\", " + parent + ", 0, false );"; >+ assertTrue( Fixture.getAllMarkup().indexOf( expected ) != -1 ); >+ } > > protected void setUp() throws Exception { > RWTFixture.setUp(); >#P org.eclipse.rap.demo >Index: src/org/eclipse/rap/demo/controls/ToolBarTab.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.ui/org.eclipse.rap.demo/src/org/eclipse/rap/demo/controls/ToolBarTab.java,v >retrieving revision 1.23 >diff -u -r1.23 ToolBarTab.java >--- src/org/eclipse/rap/demo/controls/ToolBarTab.java 4 Jun 2009 22:06:27 -0000 1.23 >+++ src/org/eclipse/rap/demo/controls/ToolBarTab.java 9 Aug 2009 20:34:40 -0000 >@@ -18,7 +18,7 @@ > import org.eclipse.swt.events.SelectionEvent; > import org.eclipse.swt.graphics.Image; > import org.eclipse.swt.graphics.Point; >-import org.eclipse.swt.layout.RowLayout; >+import org.eclipse.swt.layout.*; > import org.eclipse.swt.widgets.*; > > >@@ -44,6 +44,35 @@ > createBgColorButton(); > createBgImageButton(); > createFontChooser(); >+ createNewItemButton(); >+ } >+ >+ private void createNewItemButton() { >+ Group group = new Group( styleComp, SWT.NONE ); >+ group.setLayout( new GridLayout( 2, false ) ); >+ group.setText( "New Item" ); >+ Label label = new Label( group, SWT.NONE ); >+ label.setLayoutData( new GridData( SWT.LEFT, SWT.CENTER, false, false ) ); >+ label.setText( "Index:" ); >+ final Text index = new Text( group, SWT.SINGLE | SWT.LEAD | SWT.BORDER ); >+ index.setLayoutData( new GridData( SWT.FILL, SWT.CENTER, true, false ) ); >+ index.setText( "0" ); >+ Button addItemButton = new Button( group, SWT.PUSH ); >+ GridData gridData = new GridData( SWT.BEGINNING, >+ SWT.CENTER, >+ false, >+ false ); >+ gridData.horizontalSpan = 2; >+ addItemButton.setLayoutData( gridData ); >+ addItemButton.setText( "Add Item" ); >+ addItemButton.addSelectionListener( new SelectionAdapter() { >+ >+ public void widgetSelected( SelectionEvent e ) { >+ int newIndex = Integer.parseInt( index.getText() ); >+ ToolItem toolItem = new ToolItem( toolBar, SWT.PUSH, newIndex ); >+ toolItem.setText( "Item" ); >+ } >+ } ); > } > > protected void createExampleControls( final Composite parent ) {
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 285581
: 143856