Periodisk event i eclipse view
Jeg har følgende kode...Det opretter et nyt view til eclipse platformen.
Jeg ønsker at tilføje noget funktionalitet der gør at der periodisk (f.eks. hvert sekund) sker noget.
f.eks. vil jeg gerne have der hver sekund skal ske dette:
viewer.insert("hej",-1);
hvordan laver jeg det?
package org.eclipse.contribution.test.views;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.part.*;
import org.eclipse.jface.viewers.*;
import org.eclipse.swt.graphics.Image;
import org.eclipse.jface.action.*;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.ui.*;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.swt.SWT;
import java.net.*;
import java.io.*;
import java.util.*;
public class SampleView extends ViewPart {
public TableViewer viewer;
private Action action1;
private Action action2;
private Action action3;
private Action doubleClickAction;
private Socket socket;
private BufferedReader in;
private List mylist;
class ViewContentProvider implements IStructuredContentProvider {
public void inputChanged(Viewer v, Object oldInput, Object newInput) {
}
public void dispose() {
}
public Object[] getElements(Object parent) {
return new String[] { "test"};
}
}
class ViewLabelProvider extends LabelProvider implements ITableLabelProvider {
public String getColumnText(Object obj, int index) {
return getText(obj);
}
public Image getColumnImage(Object obj, int index) {
return getImage(obj);
}
public Image getImage(Object obj) {
return PlatformUI.getWorkbench().
getSharedImages().getImage(ISharedImages.IMG_OBJ_ELEMENT);
}
}
class NameSorter extends ViewerSorter {
}
public SampleView() {
}
public void createPartControl(Composite parent) {
viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
viewer.setContentProvider(new ViewContentProvider());
viewer.setLabelProvider(new ViewLabelProvider());
//viewer.setSorter(new NameSorter());
viewer.setInput(ResourcesPlugin.getWorkspace());
makeActions();
hookContextMenu();
hookDoubleClickAction();
contributeToActionBars();
}
private void hookContextMenu() {
MenuManager menuMgr = new MenuManager("#PopupMenu");
menuMgr.setRemoveAllWhenShown(true);
menuMgr.addMenuListener(new IMenuListener() {
public void menuAboutToShow(IMenuManager manager) {
SampleView.this.fillContextMenu(manager);
}
});
Menu menu = menuMgr.createContextMenu(viewer.getControl());
viewer.getControl().setMenu(menu);
getSite().registerContextMenu(menuMgr, viewer);
}
private void contributeToActionBars() {
IActionBars bars = getViewSite().getActionBars();
fillLocalPullDown(bars.getMenuManager());
fillLocalToolBar(bars.getToolBarManager());
}
private void fillLocalPullDown(IMenuManager manager) {
manager.add(action1);
manager.add(new Separator());
manager.add(action2);
manager.add(new Separator());
//manager.add(action3);
}
private void fillContextMenu(IMenuManager manager) {
manager.add(action1);
manager.add(action2);
manager.add(action3);
manager.add(new Separator("Additions"));
}
private void fillLocalToolBar(IToolBarManager manager) {
manager.add(action1);
manager.add(action2);
manager.add(action3);
}
private void makeActions() {
action1 = new Action() {
public void run() {
}
}
};
action1.setText("Action 1");
action1.setToolTipText("Action 1 tooltip Tryk på knappen og se");
action1.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().
getImageDescriptor(ISharedImages.IMG_OBJS_INFO_TSK));
action2 = new Action() {
public void run() {
}
};
action2.setText("Action 2");
action2.setToolTipText("Action 2 tooltip fisk");
action2.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().
getImageDescriptor(ISharedImages.IMG_OBJS_TASK_TSK));
doubleClickAction = new Action() {
public void run() {
viewer.insert("davs",-1);
}
};
action3 = new Action() {
public void run(){
}
};
action3.setText("Action 3");
action3.setToolTipText("Action 3 tooltip ko");
action3.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().
getImageDescriptor(ISharedImages.IMG_OBJS_TASK_TSK));
}
private void hookDoubleClickAction() {
viewer.addDoubleClickListener(new IDoubleClickListener() {
public void doubleClick(DoubleClickEvent event) {
doubleClickAction.run();
}
});
}
public void showMessage(String message) {
MessageDialog.openInformation(
viewer.getControl().getShell(),
"Claus View",
message);
}
public void setFocus() {
viewer.getControl().setFocus();
}
}
