📄 taskconfiguration.java
字号:
}
currentQueryArea.setText(sensorQuery.toSQL());
// textfield1.setText(Integer.toString(sensorQuery.getSamplePeriod()));
button1.setEnabled(true);
button2.setEnabled(true);
// enable start query, submit query
}
});
JPanel column4 = new JPanel();
bl = new BoxLayout(column4, BoxLayout.Y_AXIS);
column4.setLayout(bl);
column4.add(panel6);
JPanel row2 = new JPanel();
bl = new BoxLayout(row2, BoxLayout.X_AXIS);
row2.setLayout(bl);
row2.add(new Label(LABEL3));
textfield3 = new JTextField("Default");
row2.add(textfield3);
column4.add(row2);
JPanel panel8 = new JPanel();
panel8.setBorder(BorderFactory.createTitledBorder(b,"Current Sensor Query"));
panel8.add(column4);
JPanel panel7 = new JPanel();
panel7.setBorder(BorderFactory.createTitledBorder(b,"Current Health Query"));
healthQueryArea = new JTextArea(3,30);
healthQueryArea.setEditable(false);
healthQueryArea.setText(healthConstQuery.toSQL());
JPanel column3 = new JPanel();
bl = new BoxLayout(column3, BoxLayout.Y_AXIS);
column3.setLayout(bl);
column3.add(healthQueryArea);
JPanel row1 = new JPanel();
bl = new BoxLayout(row1, BoxLayout.X_AXIS);
row1.setLayout(bl);
row1.add(new Label(LABEL3));
textfield2 = new JTextField("Default");
row1.add(textfield2);
column3.add(row1);
panel7.add(column3);
///////////////
// panel 3
JPanel panel3 = new JPanel();
panel3.setBorder(b);
panel3.setLayout(new GridLayout(2,2));
button3 = new JButton(BUTTON3);
button3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
if (sensorQuery != null) {
if (oldQuery != null) {
if (oldQuery.toSQL().equals(sensorQuery.toSQL())) {
sensorQuery = oldQuery;
}
}
if (!textfield3.getText().equals("Default")) {
// System.out.println("setting table name to "+textfield3.getText()+"_sensor");
// sensorQuery.setTableName(textfield3.getText().replace(' ','_')+"_sensor");
sensorQuery.setTableName(textfield3.getText().replace(' ','_'));
}
if (client.submitSensorQuery(sensorQuery) == 0) {
sensorQueryArea.setText(sensorQuery.toSQL());
button5.setEnabled(true);
// button3.setEnabled(false);
button3.setText("Resend Sensor Query");
sensorQueryEditButton.setEnabled(true);
sensorQuerySubmitButton.setEnabled(false);
sensorQuery = client.getSensorQuery();
oldQuery = sensorQuery;
}
else {
currentQueryArea.setText(sensorQuery.toSQL() +": QUERY FAILED!");
}
}
}
});
button5 = new JButton(BUTTON5);
button5.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
if (client.stopSensorQuery() == 0) {
button3.setEnabled(true);
button3.setText("Start Sensor Query");
// button5.setEnabled(false);
sensorQueryArea.setText("QUERY STOPPED: "+sensorQuery.toSQL());
sensorQuerySubmitButton.setEnabled(true);
}
}
});
button2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
clauseListModel.clear();
button1.setEnabled(false);
button2.setEnabled(false);
}
});
button4 = new JButton(BUTTON4);
button4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
if (!textfield2.getText().equals("Default")) {
// sensorQuery.setTableName(textfield2.getText().replace(' ','_')+"_health");
sensorQuery.setTableName(textfield2.getText().replace(' ','_'));
}
if (client.submitHealthQuery(healthConstQuery) == 0) {
healthQueryArea.setText(healthConstQuery.toSQL());
button6.setEnabled(true);
// button4.setEnabled(false);
button4.setText("Resend Health Query");
healthConstQuery = client.getHealthQuery();
}
}
});
button6 = new JButton(BUTTON6);
button6.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
if (client.stopHealthQuery() == 0) {
healthQueryArea.setText("QUERY STOPPED: "+healthConstQuery.toSQL());
// button4.setEnabled(true);
button4.setText("Start Health Query");
// button6.setEnabled(false);
}
}
});
panel3.add(button3);
panel3.add(button4);
panel3.add(button5);
panel3.add(button6);
parentPanel.add(panel1);
parentPanel.add(panel2);
parentPanel.add(panel8);
parentPanel.add(panel7);
parentPanel.add(panel3);
///////////////
MouseListener mouseListener = new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
String selectedValue = (String)list1.getSelectedValue();
String att = selectedValue.substring(0,selectedValue.indexOf(":"));
if (e.getClickCount() == 1) {
if (e.isShiftDown()) {
int index = list1.locationToIndex(e.getPoint());
//commented out since split is JDK 1.4 specific -- we use
// indexOf as below. SRM 4.26.03 -- due to William J Maurer
// String att = ((String)list1.getSelectedValue()).split(":")[0];
AttributeDialog ad = new AttributeDialog(parentFrame, att, aggs, TASKOperators.OperName);
ad.pack();
ad.setLocationRelativeTo(parentFrame);
ad.setVisible(true);
if (ad.isDataValid()) {
Clause cl = ad.getClause();
if (cl.getType() == Clause.BOTH) {
Clause c1 = new Clause(cl.getAttribute(), cl.getAggregator(), 0, -1, cl.getArg1(), cl.getArg2());
Clause c2 = new Clause(cl.getAttribute(), "No Aggregator", cl.getOperator(), cl.getOperand());
if (c1.isValid()) {
clauseListModel.addElement(c1);
}
if (c2.isValid()) {
clauseListModel.addElement(c2);
}
}
else {
if (cl.isValid()) {
clauseListModel.addElement(cl);
}
}
button1.setEnabled(true);
button2.setEnabled(true);
currentQuery = createQuery(clauseListModel);
currentQueryArea.setText(currentQuery.toSQL());
}
}
else {
// AKD create clause cl
Clause cl = new Clause(att, "No Aggregator", 0, -1, AttributeDialog.NO_ARGUMENT, AttributeDialog.NO_ARGUMENT);
clauseListModel.addElement(cl);
button1.setEnabled(true);
button2.setEnabled(true);
currentQuery = createQuery(clauseListModel);
currentQueryArea.setText(currentQuery.toSQL());
}
}
}
};
list1.addMouseListener(mouseListener);
TASKQuery query = client.getHealthQuery();
if (query == null) {
// button4.setEnabled(true);
button4.setText("Start Health Query");
button6.setEnabled(false);
healthQueryArea.setText("No health query running");
}
else {
// button4.setEnabled(false);
button4.setText("Resend Health Query");
button6.setEnabled(true);
healthQueryArea.setText(query.toSQL());
textfield2.setText(query.getTableName());
}
sensorQuery = client.getSensorQuery();
if (sensorQuery == null) {
button3.setEnabled(false);
button3.setText("Start Sensor Query");
button5.setEnabled(false);
sensorQueryArea.setText("No sensor query running");
}
else {
// button3.setEnabled(false);
button3.setText("Resend Sensor Query");
button5.setEnabled(true);
sensorQueryArea.setText(sensorQuery.toSQL());
sensorQueryEditButton.setEnabled(true);
textfield3.setText(sensorQuery.getTableName());
}
ttlModel.setValue(15);
spModel.setValue(1084);
}
private TASKAttributeInfo getAttributeInfo(String name) {
for (int i=0; i<atts.size(); i++) {
if (name.equals(((TASKAttributeInfo)atts.elementAt(i)).name)) {
return (TASKAttributeInfo)atts.elementAt(i);
}
}
return null;
}
private String queryToString(TASKQuery query) {
StringBuffer sb = new StringBuffer("COLLECT ");
Vector selects = query.getSelectEntries();
for (int i=0; i<selects.size()-1; i++) {
TASKExpr expr = (TASKExpr)selects.elementAt(i);
if (expr instanceof TASKAttrExpr) {
sb.append(((TASKAttrExpr)expr).toString()+", ");
}
else if (expr instanceof TASKAggExpr) {
sb.append(((TASKAggExpr)expr).toString()+", ");
}
}
if (selects.size() > 0) {
TASKExpr expr = (TASKExpr)selects.lastElement();
if (expr instanceof TASKAttrExpr) {
sb.append(((TASKAttrExpr)expr).toString()+"\n");
}
else if (expr instanceof TASKAggExpr) {
sb.append(((TASKAggExpr)expr).toString()+"\n");
}
}
sb.append("WHERE ");
Vector preds = query.getPredicates();
for (int i=0; i<preds.size()-1; i++) {
sb.append(((TASKOperExpr)preds.elementAt(i)).toString() +", ");
}
if (preds.size() > 0) {
TASKOperExpr operExpr = (TASKOperExpr)preds.lastElement();
sb.append(operExpr.toString()+"\n");
}
sb.append("WITH SAMPLE PERIOD ");
sb.append(query.getSamplePeriod());
return sb.toString();
}
private TASKQuery createQuery(DefaultListModel model) {
if (spPanel == null) {
return null;
}
int period = spPanel.getTextValue();
TASKQuery query = new TASKQuery(new Vector(), new Vector(), period, null);
if (model.size() > 0) {
for (Enumeration e=model.elements(); e.hasMoreElements(); ) {
Clause c = (Clause)e.nextElement();
TASKAttrExpr att = new TASKAttrExpr(getAttributeInfo(c.getAttribute()));
if (c.getType() == Clause.PREDICATE) {
query.addPredicate(new TASKOperExpr(c.getOperator(), att, new TASKConstExpr(0, new Integer(c.getOperand()))));
}
else if (c.getType() == Clause.ATTRIBUTE) {
query.addSelectEntry(att);
}
else if (c.getType() == Clause.AGGREGATOR) {
if ((c.getArg1() >= 0) && (c.getArg2() >= 0)) {
query.addSelectEntry(new TASKAggExpr(c.getAggregator(), c.getAttribute(), new Integer(c.getArg1()), new Integer(c.getArg2())));
}
else if ((c.getArg1() >= 0) && (c.getArg2() < 0)) {
query.addSelectEntry(new TASKAggExpr(c.getAggregator(), c.getAttribute(), new Integer(c.getArg1()), null));
}
else if ((c.getArg1() < 0) && (c.getArg2() < 0)) {
query.addSelectEntry(new TASKAggExpr(c.getAggregator(), c.getAttribute(), null, null));
}
}
}
}
return query;
}
public int getTimeToLive(int sp) { // returns in days
currentQuery = createQuery(clauseListModel);
if (currentQuery == null) {
return 1;
}
currentQueryArea.setText(currentQuery.toSQL());
currentQuery.setSamplePeriod(sp);
//System.out.println("LT: "+client.estimateLifeTime(currentQuery, healthConstQuery));
//System.out.println("LT: "+client.estimateLifeTime(currentQuery, healthConstQuery)/(60*60*24));
return (int)client.estimateLifeTime(currentQuery, healthConstQuery)/(60*60*24);
}
public int getSamplePeriod(int ttl) { // returns in minutes
if (clauseListModel == null) {
return 1;
}
currentQuery = createQuery(clauseListModel);
if (currentQuery == null) {
return 1;
}
currentQueryArea.setText(currentQuery.toSQL());
client.estimateSamplePeriods(ttl*24*60*60, currentQuery, healthConstQuery);
return healthConstQuery.getSamplePeriod();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -