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 202075 Details for
Bug 355612
[Table][TextSizeDetermination] Wrong itemHeight on the client in some cases
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
Bug-355612.patch (text/plain), 8.33 KB, created by
Ivan Furnadjiev
on 2011-08-24 07:43:24 EDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Ivan Furnadjiev
Created:
2011-08-24 07:43:24 EDT
Size:
8.33 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.rap.rwt >Index: src/org/eclipse/rwt/internal/textsize/MeasurementOperator.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt/src/org/eclipse/rwt/internal/textsize/MeasurementOperator.java,v >retrieving revision 1.8 >diff -u -r1.8 MeasurementOperator.java >--- src/org/eclipse/rwt/internal/textsize/MeasurementOperator.java 11 Jul 2011 19:48:02 -0000 1.8 >+++ src/org/eclipse/rwt/internal/textsize/MeasurementOperator.java 24 Aug 2011 11:38:15 -0000 >@@ -7,7 +7,7 @@ > * > * Contributors: > * Frank Appel - initial API and implementation >- * EclipseSource - bug 348056: Eliminate compiler warnings >+ * EclipseSource - ongoing development > ******************************************************************************/ > package org.eclipse.rwt.internal.textsize; > >@@ -23,9 +23,10 @@ > import org.eclipse.swt.internal.SerializableCompatibility; > > class MeasurementOperator implements SerializableCompatibility { >- >+ > private final Set<Probe> probes; > private final Set<MeasurementItem> items; >+ private boolean isStartupProbeMeasurementPerformed; > > static MeasurementOperator getInstance() { > return ( MeasurementOperator )SessionSingletonBase.getInstance( MeasurementOperator.class ); >@@ -50,15 +51,18 @@ > readMeasuredFontProbeSizes(); > return readMeasuredTextSizes(); > } >- >+ > void handleStartupProbeMeasurementResults() { >- readMeasuredFontProbeSizes(); >+ if( !isStartupProbeMeasurementPerformed ) { >+ readMeasuredFontProbeSizes(); >+ isStartupProbeMeasurementPerformed = true; >+ } > } >- >+ > int getProbeCount() { > return probes.size(); > } >- >+ > void addProbeToMeasure( FontData fontData ) { > Probe probe = RWTFactory.getProbeStore().getProbe( fontData ); > if( probe == null ) { >@@ -66,36 +70,36 @@ > } > probes.add( probe ); > } >- >+ > Probe[] getProbes() { > return probes.toArray( new Probe[ probes.size() ] ); > } >- >+ > void addItemToMeasure( MeasurementItem newItem ) { > if( !requestContainsMeasurementResult( newItem ) ) { > items.add( newItem ); > } > } >- >+ > int getItemCount() { > return items.size(); > } >- >+ > MeasurementItem[] getItems() { > return items.toArray( new MeasurementItem[ items.size() ] ); > } >- >+ > ////////////////// > // helping methods >- >+ > private boolean hasProbesToMeasure() { > return !probes.isEmpty(); > } >- >+ > private void writeFontProbingStatement() { > TextSizeUtilFacade.writeFontProbing(); > } >- >+ > private void readMeasuredFontProbeSizes() { > HttpServletRequest request = ContextProvider.getRequest(); > Iterator probeList = probes.iterator(); >@@ -109,12 +113,12 @@ > } > } > } >- >+ > private void createProbeResult( Probe probe, String value ) { > Point size = getSize( value ); > ProbeResultStore.getInstance().createProbeResult( probe, size ); > } >- >+ > private void addStartupProbesToBuffer() { > Probe[] probeList = RWTFactory.getProbeStore().getProbes(); > probes.addAll( Arrays.asList( probeList ) ); >#P org.eclipse.rap.rwt.test >Index: src/org/eclipse/rwt/internal/textsize/MeasurementOperator_Test.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt.test/org.eclipse.rap.rwt.test/src/org/eclipse/rwt/internal/textsize/MeasurementOperator_Test.java,v >retrieving revision 1.5 >diff -u -r1.5 MeasurementOperator_Test.java >--- src/org/eclipse/rwt/internal/textsize/MeasurementOperator_Test.java 4 May 2011 16:46:55 -0000 1.5 >+++ src/org/eclipse/rwt/internal/textsize/MeasurementOperator_Test.java 24 Aug 2011 11:38:16 -0000 >@@ -7,6 +7,7 @@ > * > * Contributors: > * Frank Appel - initial API and implementation >+ * EclipseSource - ongoing development > ******************************************************************************/ > package org.eclipse.rwt.internal.textsize; > >@@ -33,9 +34,9 @@ > public void testHandleMeasurementRequest() { > requestProbingOfFont1(); > requestMeasurementOfItem1(); >- >+ > operator.handleMeasurementRequests(); >- >+ > assertEquals( 1, operator.getProbeCount() ); > assertEquals( 1, operator.getItemCount() ); > } >@@ -46,26 +47,26 @@ > operator.handleMeasurementRequests(); > requestProbingOfFont2(); > requestMeasurementOfItem2(); >- >+ > operator.handleMeasurementRequests(); > > assertEquals( 2, operator.getProbeCount() ); > assertEquals( 2, operator.getItemCount() ); > } >- >+ > public void testSubsequentCallsToHandleMeasurementRequestAreIdempotent() { > requestProbingOfFont1(); > requestMeasurementOfItem1(); > operator.handleMeasurementRequests(); > requestProbingOfFont1(); > requestMeasurementOfItem1(); >- >+ > operator.handleMeasurementRequests(); >- >+ > assertEquals( 1, operator.getProbeCount() ); > assertEquals( 1, operator.getItemCount() ); > } >- >+ > public void testHandleMeasurementResults() { > requestProbingOfFont1(); > requestMeasurementOfItem1(); >@@ -83,34 +84,46 @@ > requestProbingOfFont1(); > fakeRequestParamWithMeasurementResultOfItem( MEASUREMENT_ITEM_1 ); > requestMeasurementOfItem1(); >- >+ > operator.handleMeasurementRequests(); > > assertEquals( 0, operator.getItemCount() ); > } >- >+ > public void testInitStartupProbes() { > createProbeOfFont1(); >- >+ > MeasurementOperator measurementOperator = new MeasurementOperator(); >- >+ > assertEquals( 1, measurementOperator.getProbeCount() ); > } >- >+ > public void testHandleStartupProbeMeasurementResults() { > createProbeOfFont1(); > fakeRequestParamWithMeasurementResultOfProbe( FONT_DATA_1 ); > MeasurementOperator measurementOperator = new MeasurementOperator(); >- >+ > measurementOperator.handleStartupProbeMeasurementResults(); >- >+ > assertEquals( 0, measurementOperator.getProbeCount() ); > } > >+ public void testHandleStartupProbeMeasurementResultsExecutedOnce() { >+ requestProbing( FONT_DATA_1 ); >+ fakeRequestParamWithMeasurementResultOfProbe( FONT_DATA_1 ); >+ operator.handleStartupProbeMeasurementResults(); >+ requestProbing( FONT_DATA_2 ); >+ fakeRequestParamWithMeasurementResultOfProbe( FONT_DATA_2 ); >+ >+ operator.handleStartupProbeMeasurementResults(); >+ >+ assertEquals( 1, operator.getProbeCount() ); >+ } >+ > public void testAddItemToMeasure() { > initializeSessionWithDisplay(); > MeasurementItem item = createItem(); >- >+ > operator.addItemToMeasure( item ); > > checkMeasurementItemBuffering( item ); >@@ -118,24 +131,24 @@ > > public void testAddItemToMeasureIsIdempotent() { > MeasurementItem item = createItem(); >- >+ > operator.addItemToMeasure( item ); > operator.addItemToMeasure( item ); > > checkMeasurementItemBuffering( item ); > } >- >+ > public void testGetItemsToMeasureWithEmptyResult() { > MeasurementItem[] items = MeasurementOperator.getInstance().getItems(); >- >+ > assertEquals( 0, items.length ); > } >- >+ > protected void setUp() throws Exception { > Fixture.setUp(); > operator = MeasurementOperator.getInstance(); > } >- >+ > protected void tearDown() throws Exception { > Fixture.tearDown(); > } >@@ -160,7 +173,7 @@ > private void requestMeasurementOfItem1() { > MeasurementOperator.getInstance().addItemToMeasure( MEASUREMENT_ITEM_1 ); > } >- >+ > private void requestMeasurementOfItem2() { > MeasurementOperator.getInstance().addItemToMeasure( MEASUREMENT_ITEM_2 ); > } >@@ -172,12 +185,12 @@ > private void requestProbingOfFont2() { > requestProbing( FONT_DATA_2 ); > } >- >+ > private void requestProbing( FontData fontData1 ) { > Fixture.fakeNewRequest(); > operator.addProbeToMeasure( fontData1 ); > } >- >+ > private MeasurementItem createItem() { > FontData fontData = new FontData( "arial", 13, SWT.BOLD ); > String textToMeasure = "textToMeasure"; >@@ -188,11 +201,11 @@ > private MeasurementItem createItem( FontData fontData, String textToMeasure, int wrapWidth ) { > return new MeasurementItem( textToMeasure, fontData, wrapWidth ); > } >- >+ > private Display initializeSessionWithDisplay() { > return new Display(); > } >- >+ > private void checkMeasurementItemBuffering( MeasurementItem item ) { > assertEquals( 1, MeasurementOperator.getInstance().getItems().length ); > assertSame( item, MeasurementOperator.getInstance().getItems() [ 0 ] );
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 355612
: 202075