package edu.usc.cssl.tacit.common.ui.views;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.jface.layout.GridLayoutFactory;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.part.ViewPart;
import edu.usc.cssl.tacit.common.ui.utility.INlpCommonUiConstants;
import edu.usc.cssl.tacit.common.ui.utility.IconRegistry;
public class ConsoleView extends ViewPart implements INlpCommonUiConstants {
public static final String ID = "usc.edu.cssl.common.ui.views.console";
private static Text text;
private static Label header;
public void createPartControl(Composite parent) {
FormToolkit toolkit = new FormToolkit(parent.getDisplay());
Composite client = toolkit.createComposite(parent);
GridLayoutFactory.fillDefaults().equalWidth(true).numColumns(1).applyTo(client);
GridDataFactory.fillDefaults().grab(true, false).span(1, 1).applyTo(client);
header = toolkit.createLabel(client,"Nothing to display");
GridDataFactory.fillDefaults().grab(true, false).span(1, 1)
.applyTo(header);
text = toolkit.createText(client, "",SWT.READ_ONLY | SWT.MULTI | SWT.H_SCROLL
| SWT.V_SCROLL);
GridDataFactory.fillDefaults().grab(true, true).span(1, 1)
.applyTo(text);
this.setPartName("Console");
this.setTitleToolTip(this.getPartName());
this.setTitleImage(IconRegistry.getImageIconFactory().getImage(
IMAGE_CONSOLE_VIEW));
IToolBarManager tbm = getViewSite().getActionBars().getToolBarManager();
configureToolBar(tbm);
}
public static void writeInConsoleHeader(final String head) {
// update status bar
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
if(header!= null){
header.setText(head);
}
}
});
}
public static void printlInConsoleln() {
// update status bar
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
if(text!= null){
text.append("\n");
}
}
});
}
public static void printlInConsoleln(final Object log) {
// update status bar
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
if(text!= null){
text.append(String.valueOf(log));
text.append("\n");
}
}
});
}
public static void printlInConsole(final Object log) {
// update status bar
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
if(text!= null){
text.append(String.valueOf(log));
}
}
});
}
private void configureToolBar(IToolBarManager mgr) {
mgr.add(new Action() {
@Override
public ImageDescriptor getImageDescriptor() {
return (IconRegistry.getImageIconFactory()
.getImageDescriptor(IMAGE_CEAR_CO));
}
@Override
public String getToolTipText() {
return "Clear Console";
}
public void run() {
text.setText("");
header.setText("Nothing to display");
};
});
}
public void setFocus() {
text.setFocus();
}
}