]> git.argeo.org Git - gpl/argeo-slc.git/blob - legacy/org.argeo.slc.client.ui.dist/src/org/argeo/slc/client/ui/dist/views/QueryArtifactsText.java
Clarify overall project structure.
[gpl/argeo-slc.git] / legacy / org.argeo.slc.client.ui.dist / src / org / argeo / slc / client / ui / dist / views / QueryArtifactsText.java
1 package org.argeo.slc.client.ui.dist.views;
2
3 import org.argeo.slc.SlcNames;
4 import org.argeo.slc.client.ui.dist.DistPlugin;
5 import org.eclipse.swt.SWT;
6 import org.eclipse.swt.custom.SashForm;
7 import org.eclipse.swt.layout.FillLayout;
8 import org.eclipse.swt.layout.GridData;
9 import org.eclipse.swt.layout.GridLayout;
10 import org.eclipse.swt.widgets.Button;
11 import org.eclipse.swt.widgets.Composite;
12 import org.eclipse.swt.widgets.Event;
13 import org.eclipse.swt.widgets.Label;
14 import org.eclipse.swt.widgets.Listener;
15 import org.eclipse.swt.widgets.Text;
16
17 /** Query SLC Repo to get some artifacts with a JCR SQL 2 request. */
18 public class QueryArtifactsText extends AbstractQueryArtifactsView implements
19 SlcNames {
20 // private static final Log log =
21 // LogFactory.getLog(QueryArtifactsText.class);
22 public static final String ID = DistPlugin.PLUGIN_ID + ".queryArtifactsText";
23
24 // widgets
25 private Button executeBtn;
26 private Text queryText;
27 private SashForm sashForm;
28
29 private Composite top, bottom;
30
31 @Override
32 public void createPartControl(Composite parent) {
33
34 sashForm = new SashForm(parent, SWT.VERTICAL);
35 sashForm.setSashWidth(4);
36 // Enable the different parts to fill the whole page when the tab is
37 // maximized
38 sashForm.setLayout(new FillLayout());
39
40 top = new Composite(sashForm, SWT.NONE);
41 top.setLayout(new GridLayout(1, false));
42
43 bottom = new Composite(sashForm, SWT.NONE);
44 bottom.setLayout(new GridLayout(1, false));
45
46 sashForm.setWeights(new int[] { 25, 75 });
47
48 createQueryForm(top);
49 createResultPart(bottom);
50 }
51
52 public void createQueryForm(Composite parent) {
53 Label lbl;
54 GridData gd;
55
56 GridLayout gl = new GridLayout(2, false);
57 gl.marginTop = 5;
58 parent.setLayout(gl);
59
60 lbl = new Label(parent, SWT.SINGLE);
61 lbl.setText("Enter a JCR:SQL2 Query");
62
63 executeBtn = new Button(parent, SWT.PUSH);
64 executeBtn.setText("Search");
65
66 queryText = new Text(parent, SWT.MULTI | SWT.WRAP | SWT.BORDER);
67 gd = new GridData(GridData.FILL_HORIZONTAL);
68 gd.grabExcessHorizontalSpace = true;
69 gd.heightHint = 100;
70 gd.horizontalSpan = 2;
71 queryText.setLayoutData(gd);
72
73 String query = generateSelectStatement() + generateFromStatement()
74 + generateWhereStatement();
75 queryText.setText(query);
76
77 Listener executeListener = new Listener() {
78 private static final long serialVersionUID = -5028331930076117569L;
79
80 public void handleEvent(Event event) {
81 refreshQuery();
82 }
83 };
84 executeBtn.addListener(SWT.Selection, executeListener);
85 }
86
87 public void refreshQuery() {
88 String queryStr = queryText.getText();
89 executeQuery(queryStr);
90 bottom.layout();
91 sashForm.layout();
92 }
93
94 private String generateWhereStatement() {
95 StringBuffer sb = new StringBuffer(" where ");
96 return sb.toString();
97 }
98
99 @Override
100 public void setFocus() {
101 executeBtn.setFocus();
102 }
103 }