Bug 496237 - JavaStackTraceConsoleFactory as API
Change-Id: I31c1a9fd4bc60073d09db8c24ec8bb2eac85f376
diff --git a/org.eclipse.jdt.debug.ui/plugin.xml b/org.eclipse.jdt.debug.ui/plugin.xml
index e015987..24ee7d5 100644
--- a/org.eclipse.jdt.debug.ui/plugin.xml
+++ b/org.eclipse.jdt.debug.ui/plugin.xml
@@ -3342,7 +3342,7 @@
point="org.eclipse.ui.console.consoleFactories">
<consoleFactory
label="%javaStackTraceConsole.label"
- class="org.eclipse.jdt.internal.debug.ui.console.JavaStackTraceConsoleFactory">
+ class="org.eclipse.jdt.debug.ui.console.JavaStackTraceConsoleFactory">
</consoleFactory>
</extension>
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/console/JavaStackTraceConsoleFactory.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/console/JavaStackTraceConsoleFactory.java
index 5b2c4ba..07eeee2 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/console/JavaStackTraceConsoleFactory.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/console/JavaStackTraceConsoleFactory.java
@@ -10,37 +10,69 @@
*******************************************************************************/
package org.eclipse.jdt.debug.ui.console;
+import org.eclipse.jdt.internal.debug.ui.console.JavaStackTraceConsole;
+import org.eclipse.ui.console.ConsolePlugin;
+import org.eclipse.ui.console.IConsole;
+import org.eclipse.ui.console.IConsoleFactory;
+import org.eclipse.ui.console.IConsoleListener;
+import org.eclipse.ui.console.IConsoleManager;
+
/**
- * Creates a new console into which users can paste stack traces and follow the hyperlinks. creates a public API for
- * org.eclipse.jdt.internal.debug.ui.console.JavaStackTraceConsoleFactory
+ * Creates a new console into which users can paste stack traces and follow the hyperlinks.
*
* @since 3.8
*
*/
-public class JavaStackTraceConsoleFactory {
- private org.eclipse.jdt.internal.debug.ui.console.JavaStackTraceConsoleFactory javaStackTraceConsoleFactory;
+public class JavaStackTraceConsoleFactory implements IConsoleFactory {
+ private IConsoleManager fConsoleManager = null;
+ private JavaStackTraceConsole fConsole = null;
public JavaStackTraceConsoleFactory() {
- javaStackTraceConsoleFactory = new org.eclipse.jdt.internal.debug.ui.console.JavaStackTraceConsoleFactory();
+ fConsoleManager = ConsolePlugin.getDefault().getConsoleManager();
+ fConsoleManager.addConsoleListener(new IConsoleListener() {
+ @Override
+ public void consolesAdded(IConsole[] consoles) {
+ }
+
+ @Override
+ public void consolesRemoved(IConsole[] consoles) {
+ for (int i = 0; i < consoles.length; i++) {
+ if (consoles[i] == fConsole) {
+ fConsole.saveDocument();
+ fConsole = null;
+ }
+ }
+ }
+
+ });
}
/**
- * Invokes openConsole() from org.eclipse.jdt.internal.debug.ui.console.JavaStackTraceConsoleFactory
+ * Opens the console (creating a new one if not previously initialized).
*/
+ @Override
public void openConsole() {
- javaStackTraceConsoleFactory.openConsole();
+ openConsole(null);
}
/**
- * Invokes openConsole(String) from org.eclipse.jdt.internal.debug.ui.console.JavaStackTraceConsoleFactory
+ * Opens the console (creating a new one if not previously initialized). If the passed string is not <code>null</code>, the text of the console is
+ * set to the string.
*
* @param initialText
* text to put in the console or <code>null</code>.
*/
public void openConsole(String initialText) {
- javaStackTraceConsoleFactory.openConsole(initialText);
+ if (fConsole == null) {
+ fConsole = new JavaStackTraceConsole();
+ fConsole.initializeDocument();
+ fConsoleManager.addConsoles(new IConsole[] { fConsole });
+ }
+ if (initialText != null) {
+ fConsole.getDocument().set(initialText);
+ }
+ fConsoleManager.showConsoleView(fConsole);
}
-
}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenFromClipboardAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenFromClipboardAction.java
index 458b63e..1992198 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenFromClipboardAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenFromClipboardAction.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2010, 2015 IBM Corporation and others.
+ * Copyright (c) 2010, 2016 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -33,10 +33,10 @@
import org.eclipse.jdt.core.search.SearchRequestor;
import org.eclipse.jdt.core.search.TypeNameMatch;
import org.eclipse.jdt.core.search.TypeNameMatchRequestor;
+import org.eclipse.jdt.debug.ui.console.JavaStackTraceConsoleFactory;
import org.eclipse.jdt.internal.debug.ui.IJDIPreferencesConstants;
import org.eclipse.jdt.internal.debug.ui.JDIDebugUIPlugin;
import org.eclipse.jdt.internal.debug.ui.console.JavaStackTraceConsole;
-import org.eclipse.jdt.internal.debug.ui.console.JavaStackTraceConsoleFactory;
import org.eclipse.jdt.ui.JavaElementLabelProvider;
import org.eclipse.jdt.ui.JavaUI;
import org.eclipse.jface.action.IAction;
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsole.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsole.java
index 5de4ab4..f490187 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsole.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsole.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2015 IBM Corporation and others.
+ * Copyright (c) 2000, 2016 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -95,7 +95,7 @@
/**
* inits the document backing this console
*/
- void initializeDocument() {
+ public void initializeDocument() {
File file = new File(FILE_NAME);
if (file.exists()) {
try (InputStream fin = new BufferedInputStream(new FileInputStream(file))) {
@@ -134,7 +134,7 @@
/**
* Saves the backing document for this console
*/
- void saveDocument() {
+ public void saveDocument() {
try (FileOutputStream fout = new FileOutputStream(FILE_NAME)) {
IDocument document = getDocument();
if (document != null) {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsoleFactory.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsoleFactory.java
index ee24f88..32f197a 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsoleFactory.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsoleFactory.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2015 IBM Corporation and others.
+ * Copyright (c) 2000, 2016 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -10,68 +10,13 @@
*******************************************************************************/
package org.eclipse.jdt.internal.debug.ui.console;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IConsole;
-import org.eclipse.ui.console.IConsoleFactory;
-import org.eclipse.ui.console.IConsoleListener;
-import org.eclipse.ui.console.IConsoleManager;
-
/**
- * Creates a new console into which users can paste stack traces and follow
- * the hyperlinks.
+ * Creates a new console into which users can paste stack traces and follow the hyperlinks.
*
+ * @deprecated use org.eclipse.jdt.debug.ui.console.JavaStackTraceConsoleFactory
* @since 3.1
*/
-public class JavaStackTraceConsoleFactory implements IConsoleFactory {
- private IConsoleManager fConsoleManager = null;
- private JavaStackTraceConsole fConsole = null;
+@Deprecated
+public class JavaStackTraceConsoleFactory extends org.eclipse.jdt.debug.ui.console.JavaStackTraceConsoleFactory {
- public JavaStackTraceConsoleFactory() {
- fConsoleManager = ConsolePlugin.getDefault().getConsoleManager();
- fConsoleManager.addConsoleListener(new IConsoleListener() {
- @Override
- public void consolesAdded(IConsole[] consoles) {
- }
-
- @Override
- public void consolesRemoved(IConsole[] consoles) {
- for (int i = 0; i < consoles.length; i++) {
- if(consoles[i] == fConsole) {
- fConsole.saveDocument();
- fConsole = null;
- }
- }
- }
-
- });
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IConsoleFactory#openConsole()
- */
- @Override
- public void openConsole() {
- openConsole(null);
- }
-
- /**
- * Opens the console (creating a new one if not previously initialized).
- * If the passed string is not <code>null</code>, the text of the console
- * is set to the string.
- *
- * @param initialText text to put in the console or <code>null</code>.
- */
- public void openConsole(String initialText) {
- if (fConsole == null) {
- fConsole = new JavaStackTraceConsole();
- fConsole.initializeDocument();
- fConsoleManager.addConsoles(new IConsole[]{fConsole});
- }
- if (initialText != null){
- fConsole.getDocument().set(initialText);
- }
- fConsoleManager.showConsoleView(fConsole);
- }
-
-
}