Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Remote Application Platform (RAP) » Dynamically Created Images in Tables
Dynamically Created Images in Tables [message #915735] Mon, 17 September 2012 21:41 Go to next message
Paul Watson is currently offline Paul WatsonFriend
Messages: 12
Registered: July 2009
Junior Member
Hi there,

What is the best way to go about displaying some dynamically created images in a table in RAP.

From the FAQ (http://wiki.eclipse.org/RAP/FAQ#How_to_display_dynamically_created_images.3F) it looked like I could create a BufferedImage, store it somewhere on the session store and retrieve it using a image service handler. I figured I could use the markup that is now supported for tables (and other widgets) to display the images).

However, when the images get displayed I get the following exception:


!ENTRY org.eclipse.rap.jface 4 2 2012-09-17 14:38:00.789
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.rap.jface".
!STACK 0
java.lang.IllegalArgumentException: Failed to parse markup text
at org.eclipse.swt.internal.widgets.MarkupValidator.validate(MarkupValidator.java:57)
at org.eclipse.swt.widgets.TableItem.setText(TableItem.java:261)
at org.eclipse.jface.viewers.TableViewerRow.setText(TableViewerRow.java:162)
at org.eclipse.jface.viewers.ViewerCell.setText(ViewerCell.java:162)
at org.eclipse.jface.viewers.ColumnLabelProvider.update(ColumnLabelProvider.java:36)
at org.eclipse.jface.viewers.ViewerColumn.refresh(ViewerColumn.java:155)
at org.eclipse.jface.viewers.AbstractTableViewer.doUpdateItem(AbstractTableViewer.java:399)
at org.eclipse.jface.viewers.StructuredViewer$UpdateItemSafeRunnable.run(StructuredViewer.java:483)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:51)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:177)
at org.eclipse.jface.viewers.StructuredViewer.updateItem(StructuredViewer.java:2149)
at org.eclipse.jface.viewers.AbstractTableViewer.createItem(AbstractTableViewer.java:277)
at org.eclipse.jface.viewers.AbstractTableViewer.internalRefreshAll(AbstractTableViewer.java:757)
at org.eclipse.jface.viewers.AbstractTableViewer.internalRefresh(AbstractTableViewer.java:649)
at org.eclipse.jface.viewers.AbstractTableViewer.internalRefresh(AbstractTableViewer.java:636)
at org.eclipse.jface.viewers.AbstractTableViewer$1.run(AbstractTableViewer.java:592)
at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1425)
at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1386)
at org.eclipse.jface.viewers.AbstractTableViewer.inputChanged(AbstractTableViewer.java:590)
at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:280)
at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1672)
at org.eclipse.nebula.widgets.pagination.PageLoaderStrategyHelper.loadPageAndReplaceItems(PageLoaderStrategyHelper.java:88)
at org.eclipse.nebula.widgets.pagination.table.PageableTable.refreshPage(PageableTable.java:217)
at org.eclipse.nebula.widgets.pagination.AbstractPaginationWidget.internalRefreshPage(AbstractPaginationWidget.java:347)
at org.eclipse.nebula.widgets.pagination.AbstractPaginationWidget.pageIndexChanged(AbstractPaginationWidget.java:269)
at org.eclipse.nebula.widgets.pagination.PageableController.notifyListenersForPageIndexChanged(PageableController.java:313)
at org.eclipse.nebula.widgets.pagination.PageableController.reset(PageableController.java:290)
at org.eclipse.nebula.widgets.pagination.AbstractPaginationWidget.refreshPage(AbstractPaginationWidget.java:319)
at com.arenasoft.bench.core.ui.views.EntityTableView.refreshTable(EntityTableView.java:219)
at com.arenasoft.bench.core.ui.views.EntityTableView.setInput(EntityTableView.java:112)
at com.arenasoft.bench.core.ui.views.DataWarehouseView.loadViews(DataWarehouseView.java:210)
at com.arenasoft.bench.core.ui.views.DataWarehouseView.access$4(DataWarehouseView.java:203)
at com.arenasoft.bench.core.ui.views.DataWarehouseView$OpenEntityTypeAction.run(DataWarehouseView.java:450)
at com.arenasoft.bench.core.ui.views.DataWarehouseView.doubleClick(DataWarehouseView.java:231)
at org.eclipse.jface.viewers.StructuredViewer$1.run(StructuredViewer.java:828)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:51)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:177)
at org.eclipse.jface.viewers.StructuredViewer.fireDoubleClick(StructuredViewer.java:826)
at org.eclipse.jface.viewers.AbstractTreeViewer.handleDoubleSelect(AbstractTreeViewer.java:1422)
at org.eclipse.jface.viewers.StructuredViewer$4.widgetDefaultSelected(StructuredViewer.java:1228)
at org.eclipse.jface.util.OpenStrategy.fireDefaultSelectionEvent(OpenStrategy.java:242)
at org.eclipse.jface.util.OpenStrategy.access$0(OpenStrategy.java:239)
at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:304)
at org.eclipse.swt.internal.widgets.UntypedEventAdapter.dispatchEvent(UntypedEventAdapter.java:646)
at org.eclipse.swt.internal.widgets.UntypedEventAdapter.widgetDefaultSelected(UntypedEventAdapter.java:84)
at org.eclipse.swt.events.SelectionEvent.dispatchToObserver(SelectionEvent.java:194)
at org.eclipse.rwt.internal.events.Event.processEvent(Event.java:46)
at org.eclipse.swt.events.TypedEvent.processEvent(TypedEvent.java:186)
at org.eclipse.swt.events.TypedEvent.executeNext(TypedEvent.java:208)
at org.eclipse.swt.widgets.Display.runPendingMessages(Display.java:1145)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1135)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2733)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2694)
at org.eclipse.ui.internal.Workbench.access$5(Workbench.java:2530)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:702)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:685)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:157)
at com.arenasoft.bench.ui.application.rap.BenchApplication$1.run(BenchApplication.java:85)
at com.arenasoft.bench.ui.application.rap.BenchApplication$1.run(BenchApplication.java:1)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Unknown Source)
at com.arenasoft.bench.ui.application.rap.BenchApplication.start(BenchApplication.java:44)
at org.eclipse.rap.ui.internal.application.EntryPointApplicationWrapper.createUI(EntryPointApplicationWrapper.java:38)
at org.eclipse.rwt.internal.lifecycle.RWTLifeCycle.createUI(RWTLifeCycle.java:177)
at org.eclipse.rwt.internal.lifecycle.RWTLifeCycle$UIThreadController.run(RWTLifeCycle.java:289)
at java.lang.Thread.run(Unknown Source)
at org.eclipse.rwt.internal.lifecycle.UIThread.run(UIThread.java:101)
Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 72; The reference to entity "imageId" must end with the ';' delimiter.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.scanAttributeValue(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanAttribute(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(Unknown Source)
at org.eclipse.swt.internal.widgets.MarkupValidator.validate(MarkupValidator.java:53)
... 69 more

It seems the markup parser is failing with the html for the img (see the example given below). Is there something I am doing wrong, or is this a bug?

<img src="/rap?custom_service_handler=imageServiceHandler&imageId=m3738.png&nocache=1347917880977"/>


An alternative approach would be to simply write the images somewhere and make them available on the webserver (I will probably end up using using Jetty), then include a simple link to image in the markup. I am pretty new to Jetty, can anyone point me in the right direction to some information about opening up an image directory and interacting with that from RAP.

Many thanks,
Paul

Re: Dynamically Created Images in Tables [message #915896 is a reply to message #915735] Tue, 18 September 2012 07:08 Go to previous messageGo to next message
Ivan Furnadjiev is currently offline Ivan FurnadjievFriend
Messages: 2429
Registered: July 2009
Location: Sofia, Bulgaria
Senior Member
Hi Paul,
looking into your image markup:
<img
src="/rap?custom_service_handler=imageServiceHandler&imageId=m3738.png&nocache=1347917880977"/>
I found two problems:
1. the '&' char in the src attribute, which is used as an HTML entity
start. Replace it with &amp;.
2. Missing mandatory image attributes width and height.
HTH,
Ivan

On 9/18/2012 12:41 AM, Paul Watson wrote:
>
> <img
> src="/rap?custom_service_handler=imageServiceHandler&imageId=m3738.png&nocache=1347917880977"/>

--
Ivan Furnadjiev

Twitter: @EclipseRAP
Blog: http://eclipsesource.com/blogs/

Professional services for RAP and RCP?
http://eclipsesource.com/services/rap/
Re: Dynamically Created Images in Tables [message #917018 is a reply to message #915896] Wed, 19 September 2012 18:38 Go to previous message
Paul Watson is currently offline Paul WatsonFriend
Messages: 12
Registered: July 2009
Junior Member
Doh!. Thanks for the help, should have seen that. Everything is working nicely now.

Cheers,
Paul
Previous Topic:CSS + Markup support for TreeItem
Next Topic:Session Recovery
Goto Forum:
  


Current Time: Mon Jan 20 20:17:26 GMT 2025

Powered by FUDForum. Page generated in 0.02429 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top