下面列出了怎么用org.eclipse.ui.console.IConsole的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* Returns a {@link CustomMessageConsole} with the given
* <code>consoleName</code>. If no console by that name exists then one is
* created. The returned console is cleared; callers of this method can decide
* when to activate it.
*
* @param consoleName name of the console
* @param imageDescriptor image descriptor to use
* @return {@link CustomMessageConsole} with the given
* <code>consoleName</code>
*/
public static CustomMessageConsole getMessageConsole(String consoleName,
ImageDescriptor imageDescriptor) {
CustomMessageConsole messageConsole = null;
IConsoleManager consoleManager = ConsolePlugin.getDefault().getConsoleManager();
for (IConsole console : consoleManager.getConsoles()) {
if (console.getName().equals(consoleName)
&& console instanceof CustomMessageConsole) {
messageConsole = (CustomMessageConsole) console;
break;
}
}
if (messageConsole == null) {
messageConsole = new CustomMessageConsole(consoleName, imageDescriptor);
consoleManager.addConsoles(new IConsole[] {messageConsole});
} else {
messageConsole.clearConsole();
}
return messageConsole;
}
private static MessageConsole findConsole(String name) {//Find and return console, otherwise make one
if (ConsolePlugin.getDefault() == null)
return null;
ConsolePlugin plugin = ConsolePlugin.getDefault();
IConsoleManager YangConsole = plugin.getConsoleManager();
IConsole[] existing = YangConsole.getConsoles();
for (int i = 0; i < existing.length; i++)
if (name.equals(existing[i].getName())) {
YangConsole.showConsoleView(existing[i]);
return (MessageConsole) existing[i];
}
MessageConsole myConsole = new MessageConsole(name, null);
YangConsole.addConsoles(new IConsole[] { myConsole });
return myConsole;
}
@Override
public Object execute ( final ExecutionEvent event ) throws ExecutionException
{
final List<IConsole> consoles = new ArrayList<IConsole> ();
for ( final Item item : SelectionHelper.iterable ( getSelection (), Item.class ) )
{
final IConsole console = createConsole ( item ).getConsole ();
if ( console != null )
{
consoles.add ( console );
}
}
final IConsoleManager cm = ConsolePlugin.getDefault ().getConsoleManager ();
if ( !consoles.isEmpty () )
{
cm.addConsoles ( consoles.toArray ( new IConsole[consoles.size ()] ) );
cm.showConsoleView ( consoles.get ( 0 ) );
}
return null;
}
private static MessageConsole findConsole(String name) {//Find and return console, otherwise make one
if (ConsolePlugin.getDefault() == null)
return null;
ConsolePlugin plugin = ConsolePlugin.getDefault();
IConsoleManager YangConsole = plugin.getConsoleManager();
IConsole[] existing = YangConsole.getConsoles();
for (int i = 0; i < existing.length; i++)
if (name.equals(existing[i].getName())) {
YangConsole.showConsoleView(existing[i]);
return (MessageConsole) existing[i];
}
// no console found, so create a new one
MessageConsole myConsole = new MessageConsole(name, null);
YangConsole.addConsoles(new IConsole[] { myConsole });
return myConsole;
}
@Override
public void init(IPageBookViewPage page, IConsole console) {
Preconditions.checkArgument(console instanceof DeployConsole,
"console should be instance of %s",
DeployConsole.class.getName());
this.console = (DeployConsole) console;
console.addPropertyChangeListener(new IPropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent event) {
if (event.getProperty().equals(DeployConsole.PROPERTY_JOB)) {
// keep the order of adding a listener and then calling update() to ensure update
// is called regardless of when the job finishes
addJobChangeListener();
update();
}
}
});
IActionBars actionBars = page.getSite().getActionBars();
configureToolBar(actionBars.getToolBarManager());
// keep the order of adding a listener and then calling update() to ensure update
// is called regardless of when the job finishes
addJobChangeListener();
update();
}
private static MessageConsole findConsole(String name) {//Find and return console, otherwise make one
if (ConsolePlugin.getDefault() == null)
return null;
ConsolePlugin plugin = ConsolePlugin.getDefault();
IConsoleManager YangConsole = plugin.getConsoleManager();
IConsole[] existing = YangConsole.getConsoles();
for (int i = 0; i < existing.length; i++)
if (name.equals(existing[i].getName())) {
YangConsole.showConsoleView(existing[i]);
return (MessageConsole) existing[i];
}
MessageConsole myConsole = new MessageConsole(name, null);
YangConsole.addConsoles(new IConsole[] { myConsole });
return myConsole;
}
private static MessageConsole findConsole(String name) {//Find and return console, otherwise make one
if (ConsolePlugin.getDefault() == null)
return null;
ConsolePlugin plugin = ConsolePlugin.getDefault();
IConsoleManager YangConsole = plugin.getConsoleManager();
IConsole[] existing = YangConsole.getConsoles();
for (int i = 0; i < existing.length; i++)
if (name.equals(existing[i].getName())) {
YangConsole.showConsoleView(existing[i]);
return (MessageConsole) existing[i];
}
// no console found, so create a new one
MessageConsole myConsole = new MessageConsole(name, null);
YangConsole.addConsoles(new IConsole[] { myConsole });
return myConsole;
}
private static MessageConsole findConsole(String name) {//Find and return console, otherwise make one
if (ConsolePlugin.getDefault() == null)
return null;
ConsolePlugin plugin = ConsolePlugin.getDefault();
IConsoleManager YangConsole = plugin.getConsoleManager();
IConsole[] existing = YangConsole.getConsoles();
for (int i = 0; i < existing.length; i++)
if (name.equals(existing[i].getName())) {
YangConsole.showConsoleView(existing[i]);
return (MessageConsole) existing[i];
}
MessageConsole myConsole = new MessageConsole(name, null);
YangConsole.addConsoles(new IConsole[] { myConsole });
return myConsole;
}
@Override
public void log(Object obj) {
if (delegate != null) {
delegate.log(obj);
}
IConsoleManager consoleManager = ConsolePlugin.getDefault().getConsoleManager();
XtextBuildConsole console = null;
for (IConsole c : consoleManager.getConsoles()) {
if (c instanceof XtextBuildConsole) {
console = (XtextBuildConsole) c;
break;
}
}
if (console != null) {
String str = null;
if (obj instanceof Throwable) {
str = Throwables.getStackTraceAsString((Throwable) obj);
} else {
str = obj.toString();
}
console.println("[" + Thread.currentThread().getName() + "] " + str);
consoleManager.showConsoleView(console);
}
}
private static MessageConsole findConsole(String name) {//Find and return console, otherwise make one
if (ConsolePlugin.getDefault() == null)
return null;
ConsolePlugin plugin = ConsolePlugin.getDefault();
IConsoleManager YangConsole = plugin.getConsoleManager();
IConsole[] existing = YangConsole.getConsoles();
for (int i = 0; i < existing.length; i++)
if (name.equals(existing[i].getName())) {
YangConsole.showConsoleView(existing[i]);
return (MessageConsole) existing[i];
}
MessageConsole myConsole = new MessageConsole(name, null);
YangConsole.addConsoles(new IConsole[] { myConsole });
return myConsole;
}
/**
* Searches for a console with the name "Sequence Diagram Console" and
* returns it if it was found. If the console was not found creates a new
* one and returns it.
*/
private MessageConsole findConsole() {
final String seqDiagConsoleName = "Sequence Diagram Console";
ConsolePlugin plugin = ConsolePlugin.getDefault();
IConsoleManager conMan = plugin.getConsoleManager();
IConsole[] existing = conMan.getConsoles();
Optional<IConsole> seqConsole = Stream.of(existing)
.filter(console -> console.getName().equals(seqDiagConsoleName)).findFirst();
if (seqConsole.isPresent()) {
return (MessageConsole) seqConsole.get();
} else {
MessageConsole newSeqConsole = new MessageConsole(seqDiagConsoleName, null);
conMan.addConsoles(new IConsole[] { newSeqConsole });
return newSeqConsole;
}
}
public IXdsConsole getXdsConsole(String id) {
XdsConsole console = null;
IConsole[] consoles = ConsolePlugin.getDefault().getConsoleManager()
.getConsoles();
for (IConsole con : consoles) {
if (con.getName().equals(id)) {
console = (XdsConsole) con;
break;
}
}
if (console == null) {
console = new XdsConsole(id);
ConsolePlugin.getDefault().getConsoleManager().addConsoles(new IConsole[] { console });
}
return console;
}
private void doApply() {
// TODO : these settings should be stored under com.excelsior.xds.ui preference store.
XdsConsoleSettings.setShowOnBuild(cbShowWhenBuild.getSelection());
XdsConsoleSettings.setClearBeforeBuild(cbClearBeforeBuild.getSelection());
ColorStreamType.NORMAL.setRgb(csText.getColorValue());
ColorStreamType.SYSTEM.setRgb(csInfo.getColorValue());
ColorStreamType.ERROR.setRgb(csError.getColorValue());
ColorStreamType.XDS_LOG_ERROR.setRgb(csCompError.getColorValue());
ColorStreamType.XDS_LOG_WARNING.setRgb(csCompWarning.getColorValue());
ColorStreamType.USER_INPUT.setRgb(csUserInput.getColorValue());
ColorStreamType.BACKGROUND.setRgb(csBackground.getColorValue());
// Force background change:
for (IConsole con : ConsolePlugin.getDefault().getConsoleManager().getConsoles()) {
if (con instanceof TextConsole) {
((TextConsole) con).setBackground(new Color(Display.getDefault(), csBackground.getColorValue()));
}
}
WorkspacePreferencesManager.getInstance().flush();
}
public static FindBugsConsole showConsole() {
IConsoleManager manager = ConsolePlugin.getDefault().getConsoleManager();
boolean exists = false;
if (console != null) {
IConsole[] existing = manager.getConsoles();
for (int i = 0; i < existing.length; i++) {
if (console == existing[i]) {
exists = true;
}
}
} else {
console = new FindBugsConsole("SpotBugs",
FindbugsPlugin.getDefault().getImageDescriptor(AbstractFindbugsView.PERSPECTIVE_IMG), true);
}
if (!exists) {
manager.addConsoles(new IConsole[] { console });
}
ITheme theme = PlatformUI.getWorkbench().getThemeManager().getCurrentTheme();
theme.addPropertyChangeListener(console);
console.setConsoleFont();
manager.showConsoleView(console);
return console;
}
@Override
public void openConsole() {
console = getConsole();
if (console != null) {
IConsoleManager manager = ConsolePlugin.getDefault().getConsoleManager();
IConsole[] existing = manager.getConsoles();
boolean exists = false;
for (int i = 0; i < existing.length; i++) {
if(console == existing[i])
exists = true;
}
if(!exists)
manager.addConsoles(new IConsole[] {console});
manager.showConsoleView(console);
}
}
/**
* Fins the console with a given name
* @param name, name of the console
* @return
*/
private static IOConsole findConsole(String name)
{
if (name == null)
{
throw new IllegalArgumentException("Console name must be not null");
}
IConsoleManager consoleManager = ConsolePlugin.getDefault().getConsoleManager();
IConsole[] existing = consoleManager.getConsoles();
// try to find existing
for (int i = 0; i < existing.length; i++)
{
if (name.equals(existing[i].getName()))
{
return (IOConsole) existing[i];
}
}
// no console found, create a new one
IOConsole myConsole = new IOConsole(name, null);
consoleManager.addConsoles(new IConsole[] { myConsole });
return myConsole;
}
/**
* Finds the console with a given name.
*
* @param name, name of the console
* @return
*/
private static MessageConsole findConsole(String name)
{
if (name == null)
{
throw new IllegalArgumentException("Console name must be not null");
}
IConsoleManager consoleManager = ConsolePlugin.getDefault().getConsoleManager();
IConsole[] existing = consoleManager.getConsoles();
// try to find existing
for (int i = 0; i < existing.length; i++)
{
if (name.equals(existing[i].getName()))
{
return (MessageConsole) existing[i];
}
}
// no console found, create a new one
MessageConsole myConsole = new MessageConsole(name, null);
consoleManager.addConsoles(new IConsole[] { myConsole });
return myConsole;
}
public static IConsole getConsole(IWorkbenchPart part) {
if(!(part instanceof IViewPart)){
return null;
}
IViewPart vp =(IViewPart) part;
if (vp instanceof PageBookView) {
IPage page = ((PageBookView) vp).getCurrentPage();
ITextViewer viewer = getViewer(page);
if (viewer == null || viewer.getDocument() == null)
return null;
}
IConsole con = null;
try {
con = ((IConsoleView)part).getConsole();
} catch (Exception e) {
}
return con;
}
private IConsole findConsole() throws FileNotFoundException {
ConsolePlugin conPlugin = ConsolePlugin.getDefault();
IConsoleManager conMan = conPlugin.getConsoleManager();
IConsole[] existing = conMan.getConsoles();
int nameFoundIndex = -1;
for (int i = 0; i < existing.length; i++) {
// check full name first
if (getConsolePath(existing[i]).equals(getPath())) {
return existing[i];
}
// check short name if not already found
int flags = 0;
flags = java.util.regex.Pattern.CASE_INSENSITIVE | java.util.regex.Pattern.UNICODE_CASE;
regexp = Pattern.compile(getNamePattern(), flags);
if ((nameFoundIndex == -1) && regexp.matcher(existing[i].getName()).matches()) {
nameFoundIndex = i;
}
}
if (nameFoundIndex != -1) {
return existing[nameFoundIndex];
}
throw new FileNotFoundException("no console found");
}
public static CustomMessageConsole getMessageConsoleKeepLog(String consoleName,
ImageDescriptor imageDescriptor) {
CustomMessageConsole messageConsole = null;
IConsoleManager consoleManager = ConsolePlugin.getDefault().getConsoleManager();
for (IConsole console : consoleManager.getConsoles()) {
if (console.getName().equals(consoleName)
&& console instanceof CustomMessageConsole) {
messageConsole = (CustomMessageConsole) console;
break;
}
}
if (messageConsole == null) {
messageConsole = new CustomMessageConsole(consoleName, imageDescriptor);
consoleManager.addConsoles(new IConsole[] {messageConsole});
} else {
//messageConsole.clearConsole();
}
return messageConsole;
}
public boolean isEnabled()
{
boolean enabled = false;
if (currentSelection != null)
{
Object[] selectedObjects = currentSelection.toArray();
if (selectedObjects.length >= 1)
{
resource = new IConsole[selectedObjects.length];
for (int i=0;i<selectedObjects.length;i++) {
resource[i] = (IConsole)selectedObjects[i];
if (resource[i] != null)
enabled=true;
}
}
}
return enabled;
}
@Override
public synchronized void setEnabled(boolean enabled) {
super.setEnabled(enabled);
if (!enabled) {
// Clean up the launch
clearDebugger();
// Clean up the consoles
if (!activeConsoles.isEmpty()) {
IConsoleManager consoleManager = ConsolePlugin.getDefault().getConsoleManager();
consoleManager.removeConsoles(activeConsoles.toArray(new IConsole[activeConsoles.size()]));
activeConsoles.clear();
}
}
}
public static Optional<IConsole> getConsoleForLaunch(ILaunch launch) {
List<IProcess> processes = Arrays.asList(launch.getProcesses());
return Arrays.stream(ConsolePlugin.getDefault().getConsoleManager().getConsoles())
.filter(console -> console instanceof org.eclipse.debug.ui.console.IConsole
&& processes.contains(((org.eclipse.debug.ui.console.IConsole) console).getProcess()))
.findFirst();
}
@Override
public void run() {
if (app == null) {
// should not be possible
Logger.logError("HideAllLogsAction ran but no application was selected"); //$NON-NLS-1$
return;
}
if (app.getLogInfos() == null || app.getLogInfos().isEmpty()) {
Logger.logError("HideAllLogsAction ran but there are no logs for the selected application: " + app.name); //$NON-NLS-1$
return;
}
// Remove any existing consoles for this app
Job job = new Job(NLS.bind(Messages.HideAllLogFilesJobLabel, app.name)) {
@Override
protected IStatus run(IProgressMonitor monitor) {
try {
for (ProjectLogInfo logInfo : app.getLogInfos()) {
SocketConsole console = app.getConsole(logInfo);
if (console != null) {
IConsoleManager consoleManager = ConsolePlugin.getDefault().getConsoleManager();
consoleManager.removeConsoles(new IConsole[] { console });
app.removeConsole(console);
}
}
return Status.OK_STATUS;
} catch (Exception e) {
Logger.logError("An error occurred closing the log files for: " + app.name + ", with id: " + app.projectID, e); //$NON-NLS-1$ //$NON-NLS-2$
return new Status(IStatus.ERROR, CodewindUIPlugin.PLUGIN_ID, NLS.bind(Messages.HideAllLogFilesError, app.name), e);
}
}
};
job.schedule();
}
@Override
public void init(IPageBookViewPage page, IConsole console) {
if (console instanceof SocketConsole) {
ShowOnContentChangeAction contentChange = new ShowOnContentChangeAction((SocketConsole)console);
// Contribute to the toolbar
IActionBars actionBars = page.getSite().getActionBars();
IToolBarManager mgr = actionBars.getToolBarManager();
mgr.appendToGroup(IConsoleConstants.OUTPUT_GROUP, contentChange);
}
}
private String getConsoleContent() {
waitForIdleState();
final IViewPart viewPart = EclipseUIUtils.showView(CONSOLE_VIEW_ID);
final ConsoleView consoleView = assertInstanceOf(viewPart, ConsoleView.class);
final IConsole console = consoleView.getConsole();
// Can be null, if nothing was logged to the console yet. Such cases return with empty string instead.
if (console == null) {
return "";
}
final ProcessConsole processConsole = assertInstanceOf(console, ProcessConsole.class);
final String content = processConsole.getDocument().get();
return content;
}
private static MessageConsole findMessageConsole(String title) {
IConsole[] consoles = ConsolePlugin.getDefault().getConsoleManager().getConsoles();
for (IConsole iConsole : consoles) {
if (iConsole.getName().equals(title)) {
return (MessageConsole) iConsole;
}
}
return null;
}
/**
* Reveal the given console. If necessary, this will open the console view, bring it to the front, and reveal the
* given console inside the console view.
*/
public static void revealConsole(IConsole console) {
PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
@Override
public void run() {
final IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
try {
final IConsoleView view = (IConsoleView) page.showView(IConsoleConstants.ID_CONSOLE_VIEW);
view.display(console);
} catch (PartInitException e) {
// ignore
}
}
});
}
/**
* Opens the console (creating a new one if not previously initialized).
*/
@Override
public void openConsole() {
if (console == null) {
console = new N4JSStackTraceConsole();
console.initializeDocument();
fConsoleManager.addConsoles(new IConsole[] { console });
}
fConsoleManager.showConsoleView(console);
}
@Override
public void init(IPageBookViewPage page, IConsole console) {
closeAction = new CloseConsoleAction(console);
IToolBarManager manager = page.getSite().getActionBars().getToolBarManager();
manager.appendToGroup(IConsoleConstants.LAUNCH_GROUP, closeAction);
}