1 package org
.argeo
.slc
.client
.ui
.dist
.views
;
3 import org
.argeo
.slc
.SlcException
;
4 import org
.argeo
.slc
.SlcNames
;
5 import org
.argeo
.slc
.client
.ui
.dist
.DistPlugin
;
6 import org
.eclipse
.swt
.SWT
;
7 import org
.eclipse
.swt
.custom
.SashForm
;
8 import org
.eclipse
.swt
.layout
.FillLayout
;
9 import org
.eclipse
.swt
.layout
.GridData
;
10 import org
.eclipse
.swt
.layout
.GridLayout
;
11 import org
.eclipse
.swt
.widgets
.Button
;
12 import org
.eclipse
.swt
.widgets
.Composite
;
13 import org
.eclipse
.swt
.widgets
.Event
;
14 import org
.eclipse
.swt
.widgets
.Label
;
15 import org
.eclipse
.swt
.widgets
.Listener
;
16 import org
.eclipse
.swt
.widgets
.Text
;
18 /** Query SLC Repo to get some artifacts given some predefined parameters */
19 public class QueryArtifactsForm
extends AbstractQueryArtifactsView
implements
21 // private static final CmsLog log = CmsLog.getLog(QueryArtifactsForm.class);
22 public static final String ID
= DistPlugin
.PLUGIN_ID
+ ".queryArtifactsForm";
25 private Button executeBtn
;
27 private Text artifactId
;
29 private SashForm sashForm
;
31 private Composite top
, bottom
;
34 public void createPartControl(Composite parent
) {
36 sashForm
= new SashForm(parent
, SWT
.VERTICAL
);
37 sashForm
.setSashWidth(4);
38 // Enable the different parts to fill the whole page when the tab is
40 sashForm
.setLayout(new FillLayout());
42 top
= new Composite(sashForm
, SWT
.NONE
);
43 top
.setLayout(new GridLayout(1, false));
45 bottom
= new Composite(sashForm
, SWT
.NONE
);
46 bottom
.setLayout(new GridLayout(1, false));
48 sashForm
.setWeights(new int[] { 25, 75 });
51 createResultPart(bottom
);
54 public void createQueryForm(Composite parent
) {
58 GridLayout gl
= new GridLayout(2, false);
62 // lbl = new Label(parent, SWT.SINGLE);
63 // lbl.setText("Query by coordinates");
64 // gd = new GridData();
65 // gd.horizontalSpan = 2;
66 // lbl.setLayoutData(gd);
69 lbl
= new Label(parent
, SWT
.SINGLE
);
70 lbl
.setText("Group ID");
71 groupId
= new Text(parent
, SWT
.SINGLE
| SWT
.BORDER
);
72 gd
= new GridData(GridData
.FILL_HORIZONTAL
);
73 gd
.grabExcessHorizontalSpace
= true;
74 groupId
.setLayoutData(gd
);
77 lbl
= new Label(parent
, SWT
.SINGLE
);
78 lbl
.setText("Artifact ID");
79 artifactId
= new Text(parent
, SWT
.SINGLE
| SWT
.BORDER
);
80 gd
= new GridData(GridData
.FILL_HORIZONTAL
);
81 gd
.grabExcessHorizontalSpace
= true;
82 artifactId
.setLayoutData(gd
);
85 lbl
= new Label(parent
, SWT
.SINGLE
);
86 lbl
.setText("Version");
87 version
= new Text(parent
, SWT
.SINGLE
| SWT
.BORDER
);
88 gd
= new GridData(GridData
.FILL_HORIZONTAL
);
89 gd
.grabExcessHorizontalSpace
= true;
90 version
.setLayoutData(gd
);
92 executeBtn
= new Button(parent
, SWT
.PUSH
);
93 executeBtn
.setText("Search");
95 gd
.horizontalSpan
= 2;
96 executeBtn
.setLayoutData(gd
);
98 Listener executeListener
= new Listener() {
99 private static final long serialVersionUID
= 7161585477628774129L;
101 public void handleEvent(Event event
) {
105 executeBtn
.addListener(SWT
.Selection
, executeListener
);
108 public void refreshQuery() {
109 String queryStr
= generateSelectStatement() + generateFromStatement()
110 + generateWhereStatement();
111 executeQuery(queryStr
);
116 private String
generateWhereStatement() {
118 boolean hasFirstClause
= false;
119 StringBuffer sb
= new StringBuffer(" where ");
121 if (groupId
.getText() != null
122 && !groupId
.getText().trim().equals("")) {
123 sb
.append("[" + SLC_GROUP_ID
+ "] like '"
124 + groupId
.getText().replace('*', '%') + "'");
125 hasFirstClause
= true;
128 if (artifactId
.getText() != null
129 && !artifactId
.getText().trim().equals("")) {
132 sb
.append("[" + SLC_ARTIFACT_ID
+ "] like '"
133 + artifactId
.getText().replace('*', '%') + "'");
134 hasFirstClause
= true;
137 if (version
.getText() != null
138 && !version
.getText().trim().equals("")) {
141 sb
.append("[" + SLC_ARTIFACT_VERSION
+ "] like '"
142 + version
.getText().replace('*', '%') + "'");
145 return sb
.toString();
146 } catch (Exception e
) {
147 throw new SlcException(
148 "Cannot generate where statement to get artifacts", e
);
153 public void setFocus() {
154 executeBtn
.setFocus();