diff --git a/openide.text/src/org/openide/text/CloneableEditorSupport.java b/openide.text/src/org/openide/text/CloneableEditorSupport.java
--- a/openide.text/src/org/openide/text/CloneableEditorSupport.java
+++ b/openide.text/src/org/openide/text/CloneableEditorSupport.java
@@ -94,6 +94,7 @@
import javax.swing.undo.UndoableEdit;
import org.netbeans.api.editor.mimelookup.MimeLookup;
import org.netbeans.api.editor.mimelookup.MimePath;
+import org.openide.text.CloneableEditorSupportRedirector.RequestType;
import org.openide.util.Exceptions;
import org.openide.util.Mutex;
import org.openide.util.Parameters;
@@ -375,7 +376,7 @@
* @return the manager
*/
protected final synchronized UndoRedo.Manager getUndoRedo() {
- CloneableEditorSupport redirect = CloneableEditorSupportRedirector.findRedirect(this);
+ CloneableEditorSupport redirect = CloneableEditorSupportRedirector.findRedirect(this, RequestType.GET_UNDO_REDO);
if (redirect != null) {
return redirect.getUndoRedo();
}
@@ -490,7 +491,7 @@
* @see #prepareDocument */
@Override
public void open() {
- CloneableEditorSupport redirect = CloneableEditorSupportRedirector.findRedirect(this);
+ CloneableEditorSupport redirect = CloneableEditorSupportRedirector.findRedirect(this, RequestType.OPEN);
if (redirect != null) {
redirect.open();
return;
@@ -604,7 +605,7 @@
* @return task for control over loading
*/
public Task prepareDocument() {
- CloneableEditorSupport redirect = CloneableEditorSupportRedirector.findRedirect(this);
+ CloneableEditorSupport redirect = CloneableEditorSupportRedirector.findRedirect(this, RequestType.PREPARE_DOCUMENT);
if (redirect != null) {
return redirect.prepareDocument();
}
@@ -860,7 +861,7 @@
* @exception IOException if the document could not be loaded
*/
public StyledDocument openDocument() throws IOException {
- CloneableEditorSupport redirect = CloneableEditorSupportRedirector.findRedirect(this);
+ CloneableEditorSupport redirect = CloneableEditorSupportRedirector.findRedirect(this, RequestType.OPEN_DOCUMENT);
if (redirect != null) {
return redirect.openDocument();
}
@@ -960,7 +961,7 @@
* @return document or null
if it is not yet loaded
*/
public StyledDocument getDocument() {
- CloneableEditorSupport redirect = CloneableEditorSupportRedirector.findRedirect(this);
+ CloneableEditorSupport redirect = CloneableEditorSupportRedirector.findRedirect(this, RequestType.GET_DOCUMENT);
if (redirect != null) {
return redirect.getDocument();
}
@@ -1011,7 +1012,7 @@
* otherwise false
*/
public boolean isModified() {
- CloneableEditorSupport redirect = CloneableEditorSupportRedirector.findRedirect(this);
+ CloneableEditorSupport redirect = CloneableEditorSupportRedirector.findRedirect(this, RequestType.IS_MODIFIED);
if (redirect != null) {
return redirect.isModified();
}
@@ -1023,7 +1024,7 @@
* @exception IOException on I/O error
*/
public void saveDocument() throws IOException {
- CloneableEditorSupport redirect = CloneableEditorSupportRedirector.findRedirect(this);
+ CloneableEditorSupport redirect = CloneableEditorSupportRedirector.findRedirect(this, RequestType.SAVE_DOCUMENT);
final boolean log = ERR.isLoggable(Level.FINE);
if (log) {
ERR.fine(documentID() + ": saveDocument() started."); // NOI18N
@@ -1228,7 +1229,7 @@
// expected in AWT only
assert SwingUtilities.isEventDispatchThread()
: "CloneableEditorSupport.getOpenedPanes() must be called from AWT thread only"; // NOI18N
- CloneableEditorSupport redirect = CloneableEditorSupportRedirector.findRedirect(this);
+ CloneableEditorSupport redirect = CloneableEditorSupportRedirector.findRedirect(this, RequestType.GET_OPENED_PANES);
if (redirect != null) {
return redirect.getOpenedPanes();
}
@@ -1281,7 +1282,7 @@
// expected in AWT only
assert SwingUtilities.isEventDispatchThread()
: "CloneableEditorSupport.getRecentPane must be called from AWT thread only"; // NOI18N
- CloneableEditorSupport redirect = CloneableEditorSupportRedirector.findRedirect(this);
+ CloneableEditorSupport redirect = CloneableEditorSupportRedirector.findRedirect(this, RequestType.GET_RECENT_PANE);
if (redirect != null) {
return redirect.getRecentPane();
}
@@ -1345,7 +1346,7 @@
* @return positions of all paragraphs on last save
*/
public Line.Set getLineSet() {
- CloneableEditorSupport redirect = CloneableEditorSupportRedirector.findRedirect(this);
+ CloneableEditorSupport redirect = CloneableEditorSupportRedirector.findRedirect(this, RequestType.GET_LINE_SET);
if (redirect != null) {
return redirect.getLineSet();
}
@@ -1374,7 +1375,7 @@
/** A printing implementation suitable for {@link org.openide.cookies.PrintCookie}. */
public void print() {
- CloneableEditorSupport redirect = CloneableEditorSupportRedirector.findRedirect(this);
+ CloneableEditorSupport redirect = CloneableEditorSupportRedirector.findRedirect(this, RequestType.PRINT);
if (redirect != null) {
redirect.print();
return;
@@ -1603,7 +1604,7 @@
* @return true
if document is loaded
*/
public boolean isDocumentLoaded() {
- CloneableEditorSupport redirect = CloneableEditorSupportRedirector.findRedirect(this);
+ CloneableEditorSupport redirect = CloneableEditorSupportRedirector.findRedirect(this, RequestType.IS_DOCUMENT_LOADED);
if (redirect != null) {
return redirect.isDocumentLoaded();
}
@@ -1614,7 +1615,7 @@
* @return true
if document is ready
*/
boolean isDocumentReady() {
- CloneableEditorSupport redirect = CloneableEditorSupportRedirector.findRedirect(this);
+ CloneableEditorSupport redirect = CloneableEditorSupportRedirector.findRedirect(this, RequestType.IS_DOCUMENT_READY);
if (redirect != null) {
return redirect.isDocumentReady();
}
@@ -1626,7 +1627,7 @@
* @param s the new MIME type
*/
public void setMIMEType(String s) {
- CloneableEditorSupport redirect = CloneableEditorSupportRedirector.findRedirect(this, true);
+ CloneableEditorSupport redirect = CloneableEditorSupportRedirector.findRedirect(this, RequestType.SET_MIME_TYPE, true);
if (redirect != null) {
redirect.setMIMEType(s);
return;
@@ -1728,7 +1729,7 @@
* @since 4.7
*/
public InputStream getInputStream() throws IOException {
- CloneableEditorSupport redirect = CloneableEditorSupportRedirector.findRedirect(this);
+ CloneableEditorSupport redirect = CloneableEditorSupportRedirector.findRedirect(this, RequestType.GET_INPUT_STREAM);
if (redirect != null) {
return redirect.getInputStream();
}
@@ -2232,7 +2233,7 @@
*/
@Override
protected boolean close(boolean ask) {
- CloneableEditorSupport redirect = CloneableEditorSupportRedirector.findRedirect(this);
+ CloneableEditorSupport redirect = CloneableEditorSupportRedirector.findRedirect(this, RequestType.CLOSE);
if (redirect != null) {
return redirect.close(ask);
}
@@ -2602,7 +2603,7 @@
* @return always non-null
editor
*/
private final Pane openAtImpl(final PositionRef pos, final int column, boolean reuse) {
- CloneableEditorSupport redirect = CloneableEditorSupportRedirector.findRedirect(this);
+ CloneableEditorSupport redirect = CloneableEditorSupportRedirector.findRedirect(this, RequestType.OPEN_AT);
if (redirect != null) {
return redirect.openAtImpl(pos, column, reuse);
}
diff --git a/openide.text/src/org/openide/text/CloneableEditorSupportRedirector.java b/openide.text/src/org/openide/text/CloneableEditorSupportRedirector.java
--- a/openide.text/src/org/openide/text/CloneableEditorSupportRedirector.java
+++ b/openide.text/src/org/openide/text/CloneableEditorSupportRedirector.java
@@ -31,6 +31,7 @@
*/
package org.openide.text;
+import java.util.EnumSet;
import java.util.IdentityHashMap;
import java.util.Map;
import org.openide.util.Lookup;
@@ -48,6 +49,15 @@
*/
public abstract class CloneableEditorSupportRedirector {
private static final ThreadLocal