Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Remote Application Platform (RAP) » IProgressService not updating UI
IProgressService not updating UI [message #648078] Tue, 11 January 2011 06:43
Sudesh Bulathsinhala is currently offline Sudesh BulathsinhalaFriend
Messages: 193
Registered: October 2010
Senior Member
hello,

we're developing single-source RCP/RAP enterprise product. the following code snippet is intended to notify user that long running operation is in progress. this is due to time consuming method called CreatePartControl in the EditorPart. this method is responsible for constructing UI elements in the composite.we're delegating this UI building logic to a DatasetCompositeFactory, which is responsible for rendering the UI elements of the EditorPart. (we're not using static UI's, ie, the UI of the editor's are dynamic and hence customizable by end users).

this is working as expected under RCP, i.e when an Editor is invoked, it pops up the Progress Dialog Monitor and notify the user that long operation is running in the background. however the same code which we utilize in RAP does not notify the user while constructing the UI that the long operation is running in the background. it does not show the Progress Monitor Dialog at all and neither you find error message.

our requirement is to visually notify users, when Editor loading is consuming time, with a progress monitor or something similar.


	@Override
	public void createPartControl(final Composite parent) {
		final FormLayout layout = new FormLayout();
		layout.marginWidth = 0;
		layout.marginHeight = 0;
		parent.setLayout(layout);
		/*
		 * IProgressService will notify the user that the loading of the
		 * workbench element, i.e EditorPart is already in progress using
		 * ProgressMonitorDialog
		 */
		try {
			PlatformUI
					.getWorkbench()
					.getProgressService()
					.runInUI(PlatformUI.getWorkbench().getProgressService(),
							new IRunnableWithProgress() {
								@Override
								public void run(final IProgressMonitor monitor) {
									monitor.beginTask(
											"Opening Editor in progress, please wait..",
											IProgressMonitor.UNKNOWN);
									final long eventOne = System
											.currentTimeMillis();
									DatasetCompositeFactory
											.getInstance()
											.buildComposite(
													parent,
													_userInterfaceRender
															.getCompositePanelModel(),
													_datasetControllerArray);
									final long diff = eventOne
											- System.currentTimeMillis();
									System.out.println("diff - " + diff);
									monitor.done();
								}
							}, null);
		} catch (final InvocationTargetException e) {
			e.printStackTrace();
		} catch (final InterruptedException e) {
			e.printStackTrace();
		}
	}



kindly advise us if this is the correct/preferred approach to implement this feature on RAP, or alternative approach if any exist.

regards,
sudesh

[Updated on: Tue, 11 January 2011 11:10]

Report message to a moderator

Previous Topic:setDragDetect method
Next Topic:Compilation demo projects (contact, photos) errors
Goto Forum:
  


Current Time: Wed Oct 27 17:47:56 GMT 2021

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

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

Back to the top