]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.client.ui.dist/src/org/argeo/slc/client/ui/dist/views/AbstractQueryArtifactsView.java
Clarify SLC project structure.
[gpl/argeo-slc.git] / org.argeo.slc.client.ui.dist / src / org / argeo / slc / client / ui / dist / views / AbstractQueryArtifactsView.java
diff --git a/org.argeo.slc.client.ui.dist/src/org/argeo/slc/client/ui/dist/views/AbstractQueryArtifactsView.java b/org.argeo.slc.client.ui.dist/src/org/argeo/slc/client/ui/dist/views/AbstractQueryArtifactsView.java
deleted file mode 100644 (file)
index e6552eb..0000000
+++ /dev/null
@@ -1,218 +0,0 @@
-package org.argeo.slc.client.ui.dist.views;
-
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.GregorianCalendar;
-import java.util.Iterator;
-import java.util.List;
-
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-import javax.jcr.query.Query;
-import javax.jcr.query.QueryResult;
-import javax.jcr.query.Row;
-import javax.jcr.query.RowIterator;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.argeo.eclipse.ui.GenericTableComparator;
-import org.argeo.slc.SlcException;
-import org.argeo.slc.SlcTypes;
-import org.argeo.slc.client.ui.dist.utils.ArtifactsTableConfigurer;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.ui.part.ViewPart;
-
-/** Factorizes useful methods to build a query view in a sashForm */
-public abstract class AbstractQueryArtifactsView extends ViewPart implements
-               SlcTypes {
-       private static final Log log = LogFactory
-                       .getLog(AbstractQueryArtifactsView.class);
-
-       // shortcuts
-       final protected static String SAVB = "[" + SLC_ARTIFACT_VERSION_BASE + "]";
-       final protected static String SBA = "[" + SLC_BUNDLE_ARTIFACT + "]";
-       final protected static String SIP = "[" + SLC_IMPORTED_PACKAGE + "]";
-       final protected static String SEP = "[" + SLC_EXPORTED_PACKAGE + "]";
-
-       /* DEPENDENCY INJECTION */
-       private Session session;
-       private List<String> columnProperties;
-
-       // This page widgets
-       private TableViewer viewer;
-       private List<TableViewerColumn> tableViewerColumns = new ArrayList<TableViewerColumn>();
-       private ArtifactsTableConfigurer tableConfigurer;
-       private GenericTableComparator comparator;
-
-       // to be set by client to display all columns
-       private boolean displayAllColumns = false;
-
-       protected void createResultPart(Composite parent) {
-               viewer = new TableViewer(parent);
-               Table table = viewer.getTable();
-               table.getParent().setLayout(new GridLayout(1, false));
-               table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-               viewer.getTable().setHeaderVisible(true);
-               viewer.getTable().setLinesVisible(true);
-
-               viewer.setLabelProvider(new ViewLabelProvider());
-               viewer.setContentProvider(new ViewContentProvider());
-               // viewer.addDoubleClickListener(new GenericDoubleClickListener());
-
-               tableConfigurer = new ArtifactsTableConfigurer(viewer, 1,
-                               GenericTableComparator.DESCENDING);
-
-               comparator = tableConfigurer.getComparator();
-               viewer.setComparator(comparator);
-       }
-
-       protected void executeQuery(String statement) {
-               try {
-                       Calendar stStamp = new GregorianCalendar();
-                       if (log.isDebugEnabled()) {
-                               log.debug("Executed query: " + statement);
-                       }
-                       QueryResult qr = session.getWorkspace().getQueryManager()
-                                       .createQuery(statement, Query.JCR_SQL2).execute();
-
-                       if (log.isDebugEnabled()) {
-                               Calendar enStamp = new GregorianCalendar();
-                               long duration = enStamp.getTimeInMillis()
-                                               - stStamp.getTimeInMillis();
-                               log.debug("Query executed in : " + duration / 1000 + "s.");
-                       }
-
-                       // remove previous columns
-                       for (TableViewerColumn tvc : tableViewerColumns)
-                               tvc.getColumn().dispose();
-
-                       // If a pre(-defined list of columns has been injected, we use it,
-                       // otherwise we display all results of the resultSet
-                       if (!displayAllColumns && columnProperties != null) {
-                               int i = 0;
-
-                               Iterator<String> it = columnProperties.iterator();
-                               while (it.hasNext()) {
-                                       String columnName = it.next();
-
-                                       TableViewerColumn tvc = new TableViewerColumn(viewer,
-                                                       SWT.NONE);
-                                       tableConfigurer.configureColumn(columnName, tvc, i);
-                                       tvc.setLabelProvider(tableConfigurer
-                                                       .getLabelProvider(columnName));
-                                       tableViewerColumns.add(tvc);
-                                       i++;
-                               }
-                       } else {
-                               int i = 0;
-                               for (final String columnName : qr.getColumnNames()) {
-                                       TableViewerColumn tvc = new TableViewerColumn(viewer,
-                                                       SWT.NONE);
-                                       // Small hack to remove prefix from the column name
-                                       // String tmpStr = columnName.substring(columnName
-                                       // .lastIndexOf(".") + 1);
-                                       tableConfigurer.configureColumn(columnName, tvc, i);
-                                       tvc.setLabelProvider(tableConfigurer
-                                                       .getLabelProvider(columnName));
-                                       tableViewerColumns.add(tvc);
-                                       i++;
-                               }
-                       }
-                       // We must create a local list because query result can be read only
-                       // once.
-                       try {
-                               List<Row> rows = new ArrayList<Row>();
-                               RowIterator rit = qr.getRows();
-                               while (rit.hasNext()) {
-                                       rows.add(rit.nextRow());
-                               }
-                               viewer.setInput(rows);
-                       } catch (RepositoryException e) {
-                               throw new SlcException("Cannot read query result", e);
-                       }
-
-               } catch (RepositoryException e) {
-                       ErrorDialog.openError(null, "Error", "Cannot execute JCR query: "
-                                       + statement, new Status(IStatus.ERROR,
-                                       "org.argeo.eclipse.ui.jcr", e.getMessage()));
-               }
-       }
-
-       /**
-        * Client must use this method to display all columns of the result set
-        * instead of a limited predifined and injected set
-        **/
-       public void displayAllColumns(boolean flag) {
-               displayAllColumns = flag;
-       }
-
-       // Can be overridden by subclasses.
-       protected String generateSelectStatement() {
-               StringBuffer sb = new StringBuffer("select " + SAVB + ".* ");
-               return sb.toString();
-       }
-
-       protected String generateFromStatement() {
-               StringBuffer sb = new StringBuffer(" from ");
-               sb.append(SAVB);
-               sb.append(" ");
-               return sb.toString();
-       }
-
-       // Providers
-       protected class ViewContentProvider implements IStructuredContentProvider {
-               private static final long serialVersionUID = 5286293288979552056L;
-
-               public void inputChanged(Viewer arg0, Object arg1, Object arg2) {
-               }
-
-               public void dispose() {
-               }
-
-               @SuppressWarnings("unchecked")
-               public Object[] getElements(Object obj) {
-                       return ((List<String[]>) obj).toArray();
-               }
-       }
-
-       protected class ViewLabelProvider extends LabelProvider implements
-                       ITableLabelProvider {
-               private static final long serialVersionUID = -2407263563879116348L;
-
-               public String getColumnText(Object obj, int index) {
-                       if (!(obj instanceof String[]))
-                               return "Object is not properly formatted ";
-
-                       String[] value = (String[]) obj;
-
-                       return value[index];
-               }
-
-               public Image getColumnImage(Object obj, int index) {
-                       return null;
-               }
-       }
-
-       /* DEPENDENCY INJECTION */
-       public void setSession(Session session) {
-               this.session = session;
-       }
-
-       public void setColumnProperties(List<String> columnProperties) {
-               this.columnProperties = columnProperties;
-       }
-}
\ No newline at end of file