Author: mareshkau
Date: 2008-06-12 06:03:56 -0400 (Thu, 12 Jun 2008)
New Revision: 8741
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/messages/VpeUIMessages.java
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/messages/messages.properties
Log:
http://jira.jboss.org/jira/browse/JBIDE-675
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java 2008-06-12
09:17:16 UTC (rev 8740)
+++
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java 2008-06-12
10:03:56 UTC (rev 8741)
@@ -210,9 +210,11 @@
private XModelTreeListenerSWTSync optionsListener;
// Added by Max Areshkau Fix for JBIDE-1479
private UIJob job = null;
- private LinkedList<Job> jobQueue;
- private IProgressMonitor progressMonitor;
+ private IProgressMonitor progressMonitor;
private UIJob uiJob;
+ //JBIDE-675, visual refresh job
+ private UIJob visualRefresfJob;
+
/**
* Added by Max Areshkau
* JBIDE-675, stores information about modification events
@@ -336,6 +338,12 @@
getChangeEvents().clear();
uiJob=null;
}
+
+ if(visualRefresfJob!=null) {
+ visualRefresfJob.cancel();
+ visualRefresfJob=null;
+ }
+
if (optionsListener != null) {
XModelObject optionsObject = ModelUtilities.getPreferenceModel()
.getByPath(VpePreference.EDITOR_PATH);
@@ -1556,17 +1564,53 @@
}
public void visualRefresh() {
- if (!switcher
- .startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_SOURCE)) {
- return;
- }
- try {
- visualRefreshImpl();
- } catch (Exception e) {
- VpePlugin.reportProblem(e);
- } finally {
- switcher.stopActiveEditor();
- }
+
+ if(visualRefresfJob==null || visualRefresfJob.getState()==Job.NONE) {
+
+ visualRefresfJob =new UIJob(VpeUIMessages.VPE_VISUAL_REFRESH_JOB){
+
+ @Override
+ public IStatus runInUIThread(IProgressMonitor monitor) {
+
+ if(monitor.isCanceled()) {
+
+ return Status.CANCEL_STATUS;
+ }
+
+ if(uiJob!=null &&
+ uiJob.getState()==Job.RUNNING) {
+ uiJob.cancel();
+ getChangeEvents().clear();
+ //wait while ui job is finished
+ schedule(500);
+ } else {
+
+ if(uiJob!=null) {
+
+ uiJob.cancel();
+ }
+ if (!switcher
+ .startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_SOURCE)) {
+ return Status.CANCEL_STATUS;
+ }
+ try {
+ monitor.beginTask(VpeUIMessages.VPE_VISUAL_REFRESH_JOB,
IProgressMonitor.UNKNOWN);
+ visualRefreshImpl();
+ monitor.done();
+ } finally {
+
+ if(switcher!=null) {
+
+ switcher.stopActiveEditor();
+ }
+ }
+ }
+ return Status.OK_STATUS;
+ }};
+
+ visualRefresfJob.setPriority(Job.SHORT);
+ visualRefresfJob.schedule();
+ }
}
void visualRefreshImpl() {
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/messages/VpeUIMessages.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/messages/VpeUIMessages.java 2008-06-12
09:17:16 UTC (rev 8740)
+++
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/messages/VpeUIMessages.java 2008-06-12
10:03:56 UTC (rev 8741)
@@ -94,5 +94,6 @@
public static String CONFIRM_SELECTION_BAR_DIALOG_MESSAGE;
public static String CONFIRM_SELECTION_BAR_DIALOG_TOGGLE_MESSAGE;
public static String VPE_UPDATE_JOB_TITLE;
+ public static String VPE_VISUAL_REFRESH_JOB;
}
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/messages/messages.properties
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/messages/messages.properties 2008-06-12
09:17:16 UTC (rev 8740)
+++
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/messages/messages.properties 2008-06-12
10:03:56 UTC (rev 8741)
@@ -54,3 +54,4 @@
CONFIRM_SELECTION_BAR_DIALOG_MESSAGE=Hide selection bar ?
CONFIRM_SELECTION_BAR_DIALOG_TOGGLE_MESSAGE=Always hide selection bar without prompt
VPE_UPDATE_JOB_TITLE=Visual Editor View Update
+VPE_VISUAL_REFRESH_JOB=Visual Editor Refresh