X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=plugins%2Forg.argeo.slc.akb.ui%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fakb%2Fui%2Feditors%2FJdbcTestPage.java;h=f159195b30dd79eea222172cf390c519656bfe56;hb=44b4c78e6a082d51d0410c3995b5edf353d417b9;hp=b988335edb1a63122fc6b60fd5e7b52692311a15;hpb=11f74d096c83b5a40bfc438266c8fe3ae318c8d7;p=gpl%2Fargeo-slc.git diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/editors/JdbcTestPage.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/editors/JdbcTestPage.java index b988335ed..f159195b3 100644 --- a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/editors/JdbcTestPage.java +++ b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/editors/JdbcTestPage.java @@ -14,6 +14,8 @@ import org.argeo.slc.SlcException; import org.argeo.slc.akb.AkbNames; import org.argeo.slc.akb.AkbService; import org.argeo.slc.akb.ui.AkbUiUtils; +import org.argeo.slc.akb.ui.composites.ActiveItemHeaderComposite; +import org.argeo.slc.akb.ui.utils.Refreshable; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; @@ -34,7 +36,7 @@ import org.eclipse.ui.forms.widgets.FormToolkit; import org.eclipse.ui.forms.widgets.ScrolledForm; /** Test JDBC. */ -public class JdbcTestPage extends FormPage implements AkbNames { +public class JdbcTestPage extends FormPage implements AkbNames, Refreshable { private Node currItem; // A template or an active environment private Node currEnv; @@ -61,6 +63,14 @@ public class JdbcTestPage extends FormPage implements AkbNames { parent.setLayout(AkbUiUtils.gridLayoutNoBorder()); FormToolkit toolkit = getEditor().getToolkit(); + + // the header + ActiveItemHeaderComposite header = new ActiveItemHeaderComposite( + parent, SWT.NONE, toolkit, managedForm, currEnv, currItem, + akbService); + header.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false)); + + // the table Table table = toolkit.createTable(parent, SWT.VIRTUAL); table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); table.setHeaderVisible(true); @@ -70,32 +80,39 @@ public class JdbcTestPage extends FormPage implements AkbNames { viewer.setContentProvider(contentProvider); // viewer.setLabelProvider(new ColumnLabelProvider(){}); + forceRefresh(null); + } + + public void forceRefresh(Object object) { + silentlyCloseStatement(); statement = akbService.prepareJdbcQuery(currEnv, currItem); - PrivilegedJob job = new PrivilegedJob("Execute query on " + currItem) { - - @Override - protected IStatus doRun(IProgressMonitor progressMonitor) { - try { - final ResultSet resultSet = statement.executeQuery(); - getEditorSite().getWorkbenchWindow().getShell() - .getDisplay().syncExec(new Runnable() { - - @Override - public void run() { - viewer.setInput(resultSet); - } - }); - return Status.OK_STATUS; - } catch (SQLException e) { - throw new SlcException("Cannot execute " + currItem, e); + if (statement != null) { + PrivilegedJob job = new PrivilegedJob("Execute query on " + + currItem) { + + @Override + protected IStatus doRun(IProgressMonitor progressMonitor) { + try { + final ResultSet resultSet = statement.executeQuery(); + getEditorSite().getWorkbenchWindow().getShell() + .getDisplay().syncExec(new Runnable() { + + @Override + public void run() { + viewer.setInput(resultSet); + } + }); + return Status.OK_STATUS; + } catch (SQLException e) { + throw new SlcException("Cannot execute " + currItem, e); + } } - } - }; - job.schedule(); + }; + job.schedule(); + } } - @Override - public void dispose() { + private void silentlyCloseStatement() { try { if (statement != null) { statement.close(); @@ -106,6 +123,11 @@ public class JdbcTestPage extends FormPage implements AkbNames { } } + @Override + public void dispose() { + silentlyCloseStatement(); + } + private class JdbcTestContentProvider implements ILazyContentProvider { private TableViewer viewer; private ResultSet resultSet;