X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc.client.ui.dist%2Fsrc%2Forg%2Fargeo%2Fslc%2Fclient%2Fui%2Fdist%2Fviews%2FAbstractQueryArtifactsView.java;fp=org.argeo.slc.client.ui.dist%2Fsrc%2Forg%2Fargeo%2Fslc%2Fclient%2Fui%2Fdist%2Fviews%2FAbstractQueryArtifactsView.java;h=0000000000000000000000000000000000000000;hb=ecc22e604e47533c79de9cecdcdeacbc752cbff1;hp=e6552ebc1d69c5f0a65e858a158f3043567a792f;hpb=e07ded4632e53f8b8869763bc1f1f4091361e76e;p=gpl%2Fargeo-slc.git 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 index e6552ebc1..000000000 --- a/org.argeo.slc.client.ui.dist/src/org/argeo/slc/client/ui/dist/views/AbstractQueryArtifactsView.java +++ /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 columnProperties; - - // This page widgets - private TableViewer viewer; - private List tableViewerColumns = new ArrayList(); - 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 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 rows = new ArrayList(); - 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) 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 columnProperties) { - this.columnProperties = columnProperties; - } -} \ No newline at end of file