X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=cms%2Forg.argeo.slc.client.ui.dist%2Fsrc%2Forg%2Fargeo%2Fslc%2Fclient%2Fui%2Fdist%2Fviews%2FQueryArtifactsText.java;fp=cms%2Forg.argeo.slc.client.ui.dist%2Fsrc%2Forg%2Fargeo%2Fslc%2Fclient%2Fui%2Fdist%2Fviews%2FQueryArtifactsText.java;h=3b0be1064baeb28d395f6f0e08275b6ece416078;hb=ecc22e604e47533c79de9cecdcdeacbc752cbff1;hp=0000000000000000000000000000000000000000;hpb=e07ded4632e53f8b8869763bc1f1f4091361e76e;p=gpl%2Fargeo-slc.git diff --git a/cms/org.argeo.slc.client.ui.dist/src/org/argeo/slc/client/ui/dist/views/QueryArtifactsText.java b/cms/org.argeo.slc.client.ui.dist/src/org/argeo/slc/client/ui/dist/views/QueryArtifactsText.java new file mode 100644 index 000000000..3b0be1064 --- /dev/null +++ b/cms/org.argeo.slc.client.ui.dist/src/org/argeo/slc/client/ui/dist/views/QueryArtifactsText.java @@ -0,0 +1,103 @@ +package org.argeo.slc.client.ui.dist.views; + +import org.argeo.slc.SlcNames; +import org.argeo.slc.client.ui.dist.DistPlugin; +import org.eclipse.swt.SWT; +import org.eclipse.swt.custom.SashForm; +import org.eclipse.swt.layout.FillLayout; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.Text; + +/** Query SLC Repo to get some artifacts with a JCR SQL 2 request. */ +public class QueryArtifactsText extends AbstractQueryArtifactsView implements + SlcNames { + // private static final Log log = + // LogFactory.getLog(QueryArtifactsText.class); + public static final String ID = DistPlugin.PLUGIN_ID + ".queryArtifactsText"; + + // widgets + private Button executeBtn; + private Text queryText; + private SashForm sashForm; + + private Composite top, bottom; + + @Override + public void createPartControl(Composite parent) { + + sashForm = new SashForm(parent, SWT.VERTICAL); + sashForm.setSashWidth(4); + // Enable the different parts to fill the whole page when the tab is + // maximized + sashForm.setLayout(new FillLayout()); + + top = new Composite(sashForm, SWT.NONE); + top.setLayout(new GridLayout(1, false)); + + bottom = new Composite(sashForm, SWT.NONE); + bottom.setLayout(new GridLayout(1, false)); + + sashForm.setWeights(new int[] { 25, 75 }); + + createQueryForm(top); + createResultPart(bottom); + } + + public void createQueryForm(Composite parent) { + Label lbl; + GridData gd; + + GridLayout gl = new GridLayout(2, false); + gl.marginTop = 5; + parent.setLayout(gl); + + lbl = new Label(parent, SWT.SINGLE); + lbl.setText("Enter a JCR:SQL2 Query"); + + executeBtn = new Button(parent, SWT.PUSH); + executeBtn.setText("Search"); + + queryText = new Text(parent, SWT.MULTI | SWT.WRAP | SWT.BORDER); + gd = new GridData(GridData.FILL_HORIZONTAL); + gd.grabExcessHorizontalSpace = true; + gd.heightHint = 100; + gd.horizontalSpan = 2; + queryText.setLayoutData(gd); + + String query = generateSelectStatement() + generateFromStatement() + + generateWhereStatement(); + queryText.setText(query); + + Listener executeListener = new Listener() { + private static final long serialVersionUID = -5028331930076117569L; + + public void handleEvent(Event event) { + refreshQuery(); + } + }; + executeBtn.addListener(SWT.Selection, executeListener); + } + + public void refreshQuery() { + String queryStr = queryText.getText(); + executeQuery(queryStr); + bottom.layout(); + sashForm.layout(); + } + + private String generateWhereStatement() { + StringBuffer sb = new StringBuffer(" where "); + return sb.toString(); + } + + @Override + public void setFocus() { + executeBtn.setFocus(); + } +} \ No newline at end of file