in caseditor-corpus-server-plugin/src/main/java/org/apache/opennlp/corpus_server/caseditor/TaskQueueView.java [60:183]
public void createPartControl(Composite parent) {
Composite explorerComposite = new Composite(parent, SWT.NONE);
GridLayout explorerLayout = new GridLayout();
explorerLayout.numColumns = 2;
explorerComposite.setLayout(explorerLayout);
// URL field to connect to corpus server and corpus
Label serverLabel = new Label(explorerComposite, SWT.NONE);
serverLabel.setText("Server:");
serverUrl = new Text(explorerComposite, SWT.BORDER);
GridDataFactory.swtDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false)
.applyTo(serverUrl);
// TODO: Should be stored in some way, or just done more sophisticated ..
serverUrl.setText("http://localhost:8080/corpus-server/rest/queues/ObamaNerTask");
// Button for next cas (gets next and closes current one,
// if not saved user is asked for it)
Button nextDocument = new Button(explorerComposite, SWT.BORDER);
nextDocument.setText("Next");
GridDataFactory.swtDefaults().span(2, 1).align(SWT.FILL, SWT.CENTER)
.grab(true, false).applyTo(nextDocument);
nextDocument.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent event) {
Client c = ClientBuilder.newClient();
WebTarget queueWebResource = c.target(serverUrl.getText());
Response response2 = queueWebResource
.path("_nextTask")
.request(MediaType.APPLICATION_JSON)
.header("Content-Type", MediaType.TEXT_XML)
.get();
String casId = response2.readEntity(String.class);
// How to get the corpus uri for the item returned from the queue ???
// Queue could always return full URI ...
// we also need to corpus the cas id belongs too ...
IWorkbenchPage page = TaskQueueView.this.getSite().getPage();
// TODO: That's a short cut, we need to make this work properly ...
IEditorInput input = new CorpusServerCasEditorInput(
"http://localhost:8080/corpus-server/rest/corpora/wikinews", casId);
try {
page.openEditor(input, "org.apache.uima.caseditor.editor");
} catch (PartInitException e) {
e.printStackTrace();
}
// Add casId to historyViewer ... should be inserted at the top, not bottom.
lastInputElements.add(input);
historyViewer.insert(input, 0);
if (lastInputElements.size() > 10) {
IEditorInput tooOldInput = lastInputElements.remove(0);
historyViewer.remove(tooOldInput);
}
}
@Override
public void widgetDefaultSelected(SelectionEvent event) {
}
});
// History view ... shows n last opened CASes ...
historyViewer = new TableViewer(explorerComposite);
historyViewer.setLabelProvider(new ITableLabelProvider() {
@Override
public void addListener(ILabelProviderListener arg0) {
}
@Override
public void dispose() {
}
@Override
public boolean isLabelProperty(Object arg0, String arg1) {
return false;
}
@Override
public void removeListener(ILabelProviderListener arg0) {
}
@Override
public Image getColumnImage(Object arg0, int arg1) {
return null;
}
@Override
public String getColumnText(Object arg0, int arg1) {
return ((IEditorInput) arg0).getName();
}});
GridDataFactory.swtDefaults().align(SWT.FILL, SWT.FILL).grab(true, true)
.span(2, 1).applyTo(historyViewer.getTable());
historyViewer.addOpenListener(event -> {
StructuredSelection selection = (StructuredSelection) event.getSelection();
if (!selection.isEmpty()) {
IWorkbenchPage page = TaskQueueView.this.getSite().getPage();
IEditorInput input = (IEditorInput) selection.getFirstElement();
try {
page.openEditor(input, "org.apache.uima.caseditor.editor");
} catch (PartInitException e) {
e.printStackTrace();
}
}
});
}