/*
* Geotoolkit - An Open Source Java GIS Toolkit
* http://www.geotoolkit.org
*
* (C) 2014, Geomatys
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*/
package org.geotoolkit.gui.swing.filter;
import java.awt.Color;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Arrays;
import java.util.List;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JTree;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeCellRenderer;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreePath;
import javax.swing.tree.TreeSelectionModel;
import org.geotoolkit.filter.function.FunctionFactory;
import org.geotoolkit.filter.function.Functions;
import static org.geotoolkit.gui.swing.filter.JCQLEditor.DEFAULT_SIMPLE;
import org.geotoolkit.font.FontAwesomeIcons;
import org.geotoolkit.font.IconBuilder;
import org.geotoolkit.gui.swing.resource.MessageBundle;
import org.opengis.parameter.GeneralParameterDescriptor;
import org.opengis.parameter.ParameterDescriptorGroup;
/**
*
* @author Johann Sorel (Geomatys)
*/
public class JCQLShortcutPanel extends javax.swing.JPanel {
/**
* A property event of this type is fired when a shortcut (button or tree) has been clicked.
* Value is a String.
*/
public static final String KEY_SELECTION = "selectionText";
public static volatile boolean DEFAULT_SIMPLE = true;
private static final ImageIcon ICON_FUNCTION = IconBuilder.createIcon(FontAwesomeIcons.ICON_COG, 16, Color.GRAY);
private static final ImageIcon ICON_GROUP = IconBuilder.createIcon(FontAwesomeIcons.ICON_FOLDER, 16, Color.GRAY);
private boolean filter = true;
/**
* Creates new form JCQLShortcutPanel
*/
public JCQLShortcutPanel() {
initComponents();
guiFunctions.setModel(new DefaultTreeModel(new DefaultMutableTreeNode("-")));
guiFunctions.setRootVisible(false);
guiFunctions.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
guiFunctions.getSelectionModel().addTreeSelectionListener(new TreeSelectionListener() {
@Override
public void valueChanged(TreeSelectionEvent e) {
final TreePath ob = guiFunctions.getSelectionPath();
if(ob != null){
final DefaultMutableTreeNode node = (DefaultMutableTreeNode) ob.getLastPathComponent();
if(node.getChildCount()==0 && node.getUserObject() instanceof ParameterDescriptorGroup){
final ParameterDescriptorGroup desc = (ParameterDescriptorGroup) node.getUserObject();
final StringBuilder sb = new StringBuilder();
sb.append(desc.getName().getCode()).append('(');
final List<GeneralParameterDescriptor> gpds = desc.descriptors();
for(int i=0;i<gpds.size();i++){
if(i>0) sb.append(',');
sb.append(gpds.get(i).getName().getCode());
}
sb.append(')');
guiFunctions.clearSelection();
fireShortCutText(" "+sb.toString());
}
}
}
});
guiFunctions.setCellRenderer(new DefaultTreeCellRenderer(){
@Override
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel,
boolean expanded, boolean leaf, int row, boolean hasFocus) {
final JLabel lbl = (JLabel)super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
if(value instanceof DefaultMutableTreeNode){
value = ((DefaultMutableTreeNode)value).getUserObject();
}
if(value instanceof ParameterDescriptorGroup){
final ParameterDescriptorGroup desc = (ParameterDescriptorGroup) value;
lbl.setText(desc.getName().getCode());
lbl.setIcon(ICON_FUNCTION);
}else{
lbl.setIcon(ICON_GROUP);
}
return lbl;
}
});
final ActionListener actListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
final JButton but = (JButton) e.getSource();
fireShortCutText(but.getName());
}
};
jButton1.addActionListener(actListener);
jButton2.addActionListener(actListener);
jButton3.addActionListener(actListener);
jButton4.addActionListener(actListener);
jButton5.addActionListener(actListener);
jButton6.addActionListener(actListener);
jButton7.addActionListener(actListener);
jButton8.addActionListener(actListener);
jButton9.addActionListener(actListener);
jButton10.addActionListener(actListener);
jButton11.addActionListener(actListener);
jButton12.addActionListener(actListener);
jButton13.addActionListener(actListener);
jButton14.addActionListener(actListener);
jButton15.addActionListener(actListener);
jButton16.addActionListener(actListener);
jButton17.addActionListener(actListener);
jButton18.addActionListener(actListener);
jButton19.addActionListener(actListener);
jButton20.addActionListener(actListener);
jButton21.addActionListener(actListener);
jButton22.addActionListener(actListener);
jButton23.addActionListener(actListener);
jButton24.addActionListener(actListener);
jButton25.addActionListener(actListener);
jButton26.addActionListener(actListener);
jButton27.addActionListener(actListener);
jButton28.addActionListener(actListener);
jButton29.addActionListener(actListener);
jButton30.addActionListener(actListener);
jButton31.addActionListener(actListener);
jButton32.addActionListener(actListener);
jButton33.addActionListener(actListener);
jButton34.addActionListener(actListener);
jButton35.addActionListener(actListener);
jButton36.addActionListener(actListener);
jButton37.addActionListener(actListener);
jButton38.addActionListener(actListener);
jButton39.addActionListener(actListener);
jButton40.addActionListener(actListener);
jButton41.addActionListener(actListener);
jButton42.addActionListener(actListener);
jButton43.addActionListener(actListener);
guiSimple.setSelected(DEFAULT_SIMPLE);
updateSimpleAdvanced();
}
public boolean isFilterOpVisible() {
return filter;
}
public void setFilterOpVisible(boolean filter) {
this.filter = filter;
updateSimpleAdvanced();
}
private void updateSimpleAdvanced(){
final DefaultMutableTreeNode root = new org.geotoolkit.gui.swing.tree.DefaultMutableTreeNode("root");
final boolean simple = guiSimple.isSelected();
for(FunctionFactory ff : Functions.getFactories()){
final String factoryName = ff.getIdentifier();
if(simple && !"math".equals(factoryName)) continue;
final DefaultMutableTreeNode fnode = new org.geotoolkit.gui.swing.tree.DefaultMutableTreeNode(factoryName);
String[] names = ff.getNames();
Arrays.sort(names);
for(String str : names){
final ParameterDescriptorGroup desc = ff.describeFunction(str);
final DefaultMutableTreeNode enode = new org.geotoolkit.gui.swing.tree.DefaultMutableTreeNode(desc);
fnode.add(enode);
}
root.add(fnode);
}
guiFunctions.setModel(new DefaultTreeModel(root));
guiFunctions.setRootVisible(false);
if(guiSimple.isSelected()){
guiFilterOps.setVisible(false);
guiFilterOps.setSize(1,1);
}else if(filter){
guiFilterOps.setVisible(true);
guiFilterOps.setSize(guiFilterOps.getPreferredSize());
}
}
private void fireShortCutText(String text){
firePropertyChange(KEY_SELECTION, null, text);
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
java.awt.GridBagConstraints gridBagConstraints;
typeGroup = new javax.swing.ButtonGroup();
jXTitledSeparator5 = new org.jdesktop.swingx.JXTitledSeparator();
guiFilterOps = new javax.swing.JPanel();
jXTitledSeparator2 = new org.jdesktop.swingx.JXTitledSeparator();
jPanel4 = new javax.swing.JPanel();
jButton3 = new javax.swing.JButton();
jButton9 = new javax.swing.JButton();
jButton10 = new javax.swing.JButton();
jButton11 = new javax.swing.JButton();
jButton12 = new javax.swing.JButton();
jButton13 = new javax.swing.JButton();
jButton14 = new javax.swing.JButton();
jButton15 = new javax.swing.JButton();
jButton16 = new javax.swing.JButton();
jButton18 = new javax.swing.JButton();
jButton19 = new javax.swing.JButton();
jButton20 = new javax.swing.JButton();
jButton17 = new javax.swing.JButton();
jXTitledSeparator3 = new org.jdesktop.swingx.JXTitledSeparator();
jPanel5 = new javax.swing.JPanel();
jButton4 = new javax.swing.JButton();
jButton21 = new javax.swing.JButton();
jButton22 = new javax.swing.JButton();
jButton23 = new javax.swing.JButton();
jButton24 = new javax.swing.JButton();
jButton25 = new javax.swing.JButton();
jButton26 = new javax.swing.JButton();
jButton27 = new javax.swing.JButton();
jButton28 = new javax.swing.JButton();
jButton30 = new javax.swing.JButton();
jButton29 = new javax.swing.JButton();
jXTitledSeparator4 = new org.jdesktop.swingx.JXTitledSeparator();
jPanel6 = new javax.swing.JPanel();
jButton5 = new javax.swing.JButton();
jButton31 = new javax.swing.JButton();
jButton32 = new javax.swing.JButton();
jButton33 = new javax.swing.JButton();
jButton34 = new javax.swing.JButton();
jButton43 = new javax.swing.JButton();
jButton42 = new javax.swing.JButton();
jButton41 = new javax.swing.JButton();
jButton40 = new javax.swing.JButton();
jButton39 = new javax.swing.JButton();
jButton38 = new javax.swing.JButton();
jButton35 = new javax.swing.JButton();
jButton37 = new javax.swing.JButton();
jButton36 = new javax.swing.JButton();
jXTitledSeparator1 = new org.jdesktop.swingx.JXTitledSeparator();
jPanel3 = new javax.swing.JPanel();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jButton6 = new javax.swing.JButton();
jButton7 = new javax.swing.JButton();
jButton8 = new javax.swing.JButton();
jScrollPane3 = new javax.swing.JScrollPane();
guiFunctions = new javax.swing.JTree();
jPanel1 = new javax.swing.JPanel();
guiSimple = new javax.swing.JToggleButton();
guiAdvanced = new javax.swing.JToggleButton();
setLayout(new java.awt.GridBagLayout());
jXTitledSeparator5.setTitle(MessageBundle.format("function")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 4;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.insets = new java.awt.Insets(0, 10, 10, 0);
add(jXTitledSeparator5, gridBagConstraints);
jXTitledSeparator2.setTitle(MessageBundle.format("compare")); // NOI18N
jPanel4.setLayout(new java.awt.GridLayout(0, 4));
jButton3.setFont(jButton3.getFont().deriveFont(jButton3.getFont().getSize()-3f));
jButton3.setText(" = ");
jButton3.setBorderPainted(false);
jButton3.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton3.setName(" ="); // NOI18N
jPanel4.add(jButton3);
jButton9.setFont(jButton9.getFont().deriveFont(jButton9.getFont().getSize()-3f));
jButton9.setText(" <> ");
jButton9.setBorderPainted(false);
jButton9.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton9.setName(" <>"); // NOI18N
jPanel4.add(jButton9);
jButton10.setFont(jButton10.getFont().deriveFont(jButton10.getFont().getSize()-3f));
jButton10.setText(" > ");
jButton10.setBorderPainted(false);
jButton10.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton10.setName(" >"); // NOI18N
jPanel4.add(jButton10);
jButton11.setFont(jButton11.getFont().deriveFont(jButton11.getFont().getSize()-3f));
jButton11.setText(" >= ");
jButton11.setBorderPainted(false);
jButton11.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton11.setName(" >="); // NOI18N
jPanel4.add(jButton11);
jButton12.setFont(jButton12.getFont().deriveFont(jButton12.getFont().getSize()-3f));
jButton12.setText(" < ");
jButton12.setBorderPainted(false);
jButton12.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton12.setName(" <"); // NOI18N
jPanel4.add(jButton12);
jButton13.setFont(jButton13.getFont().deriveFont(jButton13.getFont().getSize()-3f));
jButton13.setText(" <= ");
jButton13.setBorderPainted(false);
jButton13.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton13.setName(" <="); // NOI18N
jPanel4.add(jButton13);
jButton14.setFont(jButton14.getFont().deriveFont(jButton14.getFont().getSize()-3f));
jButton14.setText("LIKE");
jButton14.setBorderPainted(false);
jButton14.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton14.setName(" LIKE"); // NOI18N
jPanel4.add(jButton14);
jButton15.setFont(jButton15.getFont().deriveFont(jButton15.getFont().getSize()-3f));
jButton15.setText(" IS ");
jButton15.setBorderPainted(false);
jButton15.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton15.setName(" IS"); // NOI18N
jPanel4.add(jButton15);
jButton16.setFont(jButton16.getFont().deriveFont(jButton16.getFont().getSize()-3f));
jButton16.setText(" IN ");
jButton16.setBorderPainted(false);
jButton16.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton16.setName(" IN"); // NOI18N
jPanel4.add(jButton16);
jButton18.setFont(jButton18.getFont().deriveFont(jButton18.getFont().getSize()-3f));
jButton18.setText("BETWEEN");
jButton18.setBorderPainted(false);
jButton18.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton18.setName(" BETWEEN"); // NOI18N
jPanel4.add(jButton18);
jButton19.setFont(jButton19.getFont().deriveFont(jButton19.getFont().getSize()-3f));
jButton19.setText("AND");
jButton19.setBorderPainted(false);
jButton19.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton19.setName(" AND"); // NOI18N
jPanel4.add(jButton19);
jButton20.setFont(jButton20.getFont().deriveFont(jButton20.getFont().getSize()-3f));
jButton20.setText("OR");
jButton20.setBorderPainted(false);
jButton20.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton20.setName(" OR"); // NOI18N
jPanel4.add(jButton20);
jButton17.setFont(jButton17.getFont().deriveFont(jButton17.getFont().getSize()-3f));
jButton17.setText("NOT");
jButton17.setBorderPainted(false);
jButton17.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton17.setName(" NOT"); // NOI18N
jPanel4.add(jButton17);
jXTitledSeparator3.setTitle(MessageBundle.format("spatial")); // NOI18N
jPanel5.setLayout(new java.awt.GridLayout(0, 3));
jButton4.setFont(jButton4.getFont().deriveFont(jButton4.getFont().getSize()-3f));
jButton4.setText("BBOX");
jButton4.setBorderPainted(false);
jButton4.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton4.setName(" BBOX(att,minx,miny,maxx,maxy,'crs')"); // NOI18N
jPanel5.add(jButton4);
jButton21.setFont(jButton21.getFont().deriveFont(jButton21.getFont().getSize()-3f));
jButton21.setText("BEYOND");
jButton21.setBorderPainted(false);
jButton21.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton21.setName(" BEYOND(exp1,exp2)"); // NOI18N
jPanel5.add(jButton21);
jButton22.setFont(jButton22.getFont().deriveFont(jButton22.getFont().getSize()-3f));
jButton22.setText("CONTAINS");
jButton22.setBorderPainted(false);
jButton22.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton22.setName(" CONTAINs(exp1,exp2)"); // NOI18N
jPanel5.add(jButton22);
jButton23.setFont(jButton23.getFont().deriveFont(jButton23.getFont().getSize()-3f));
jButton23.setText("CROSS");
jButton23.setBorderPainted(false);
jButton23.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton23.setName(" CROSS(exp1,exp2)"); // NOI18N
jPanel5.add(jButton23);
jButton24.setFont(jButton24.getFont().deriveFont(jButton24.getFont().getSize()-3f));
jButton24.setText("DISJOINT");
jButton24.setBorderPainted(false);
jButton24.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton24.setName(" DISJOINT(exp1,exp2)"); // NOI18N
jPanel5.add(jButton24);
jButton25.setFont(jButton25.getFont().deriveFont(jButton25.getFont().getSize()-3f));
jButton25.setText("DWITHIN");
jButton25.setBorderPainted(false);
jButton25.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton25.setName(" DWITHIN(exp1,exp2)"); // NOI18N
jPanel5.add(jButton25);
jButton26.setFont(jButton26.getFont().deriveFont(jButton26.getFont().getSize()-3f));
jButton26.setText("EQUALS");
jButton26.setBorderPainted(false);
jButton26.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton26.setName(" EQUALS(exp1,exp2)"); // NOI18N
jPanel5.add(jButton26);
jButton27.setFont(jButton27.getFont().deriveFont(jButton27.getFont().getSize()-3f));
jButton27.setText("INTERSECT");
jButton27.setBorderPainted(false);
jButton27.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton27.setName(" INTERSECT(exp1,exp2)"); // NOI18N
jPanel5.add(jButton27);
jButton28.setFont(jButton28.getFont().deriveFont(jButton28.getFont().getSize()-3f));
jButton28.setText("OVERLAP");
jButton28.setBorderPainted(false);
jButton28.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton28.setName(" OVERLAP(exp1,exp2)"); // NOI18N
jPanel5.add(jButton28);
jButton30.setFont(jButton30.getFont().deriveFont(jButton30.getFont().getSize()-3f));
jButton30.setText("TOUCH");
jButton30.setBorderPainted(false);
jButton30.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton30.setName(" TOUCH(exp1,exp2)"); // NOI18N
jPanel5.add(jButton30);
jButton29.setFont(jButton29.getFont().deriveFont(jButton29.getFont().getSize()-3f));
jButton29.setText("WITHIN");
jButton29.setBorderPainted(false);
jButton29.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton29.setName(" WITHIN(exp1,exp2)"); // NOI18N
jPanel5.add(jButton29);
jXTitledSeparator4.setTitle(MessageBundle.format("temporal")); // NOI18N
jPanel6.setLayout(new java.awt.GridLayout(0, 3));
jButton5.setFont(jButton5.getFont().deriveFont(jButton5.getFont().getSize()-3f));
jButton5.setText("AFTER");
jButton5.setBorderPainted(false);
jButton5.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton5.setName(" att AFTER exp"); // NOI18N
jPanel6.add(jButton5);
jButton31.setFont(jButton31.getFont().deriveFont(jButton31.getFont().getSize()-3f));
jButton31.setText("ANYINTERACTS");
jButton31.setBorderPainted(false);
jButton31.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton31.setName(" att ANYINTERACTS exp"); // NOI18N
jPanel6.add(jButton31);
jButton32.setFont(jButton32.getFont().deriveFont(jButton32.getFont().getSize()-3f));
jButton32.setText("BEFORE");
jButton32.setBorderPainted(false);
jButton32.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton32.setName(" att BEFORE exp"); // NOI18N
jPanel6.add(jButton32);
jButton33.setFont(jButton33.getFont().deriveFont(jButton33.getFont().getSize()-3f));
jButton33.setText("BEGINS");
jButton33.setBorderPainted(false);
jButton33.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton33.setName(" att BEGINS exp"); // NOI18N
jPanel6.add(jButton33);
jButton34.setFont(jButton34.getFont().deriveFont(jButton34.getFont().getSize()-3f));
jButton34.setText("BEGUNBY");
jButton34.setBorderPainted(false);
jButton34.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton34.setName(" att BEGUNBY exp"); // NOI18N
jPanel6.add(jButton34);
jButton43.setFont(jButton43.getFont().deriveFont(jButton43.getFont().getSize()-3f));
jButton43.setText("DURING");
jButton43.setBorderPainted(false);
jButton43.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton43.setName(" att DURING exp"); // NOI18N
jPanel6.add(jButton43);
jButton42.setFont(jButton42.getFont().deriveFont(jButton42.getFont().getSize()-3f));
jButton42.setText("ENDEDBY");
jButton42.setBorderPainted(false);
jButton42.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton42.setName(" att ENDEDBY exp"); // NOI18N
jPanel6.add(jButton42);
jButton41.setFont(jButton41.getFont().deriveFont(jButton41.getFont().getSize()-3f));
jButton41.setText("ENDS");
jButton41.setBorderPainted(false);
jButton41.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton41.setName(" att ENDS exp"); // NOI18N
jPanel6.add(jButton41);
jButton40.setFont(jButton40.getFont().deriveFont(jButton40.getFont().getSize()-3f));
jButton40.setText("MEETS");
jButton40.setBorderPainted(false);
jButton40.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton40.setName(" att MEETS exp"); // NOI18N
jPanel6.add(jButton40);
jButton39.setFont(jButton39.getFont().deriveFont(jButton39.getFont().getSize()-3f));
jButton39.setText("METBY");
jButton39.setBorderPainted(false);
jButton39.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton39.setName(" att METBY exp"); // NOI18N
jPanel6.add(jButton39);
jButton38.setFont(jButton38.getFont().deriveFont(jButton38.getFont().getSize()-3f));
jButton38.setText("OVERLAPPEDBY");
jButton38.setBorderPainted(false);
jButton38.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton38.setName(" att OVERLAPPEDBY exp"); // NOI18N
jPanel6.add(jButton38);
jButton35.setFont(jButton35.getFont().deriveFont(jButton35.getFont().getSize()-3f));
jButton35.setText("TCONTAINS");
jButton35.setBorderPainted(false);
jButton35.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton35.setName(" att TCONTAINS exp"); // NOI18N
jPanel6.add(jButton35);
jButton37.setFont(jButton37.getFont().deriveFont(jButton37.getFont().getSize()-3f));
jButton37.setText("TEQUALS");
jButton37.setBorderPainted(false);
jButton37.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton37.setName(" att TEQUALS exp"); // NOI18N
jPanel6.add(jButton37);
jButton36.setFont(jButton36.getFont().deriveFont(jButton36.getFont().getSize()-3f));
jButton36.setText("TOVERLAPS");
jButton36.setBorderPainted(false);
jButton36.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton36.setName(" att TOVERLAPS exp"); // NOI18N
jPanel6.add(jButton36);
javax.swing.GroupLayout guiFilterOpsLayout = new javax.swing.GroupLayout(guiFilterOps);
guiFilterOps.setLayout(guiFilterOpsLayout);
guiFilterOpsLayout.setHorizontalGroup(
guiFilterOpsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(guiFilterOpsLayout.createSequentialGroup()
.addContainerGap()
.addGroup(guiFilterOpsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jXTitledSeparator3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jXTitledSeparator2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jXTitledSeparator4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
.addComponent(jPanel6, javax.swing.GroupLayout.DEFAULT_SIZE, 231, Short.MAX_VALUE)
);
guiFilterOpsLayout.setVerticalGroup(
guiFilterOpsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(guiFilterOpsLayout.createSequentialGroup()
.addComponent(jXTitledSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jXTitledSeparator3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jXTitledSeparator4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 3;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
add(guiFilterOps, gridBagConstraints);
jXTitledSeparator1.setTitle(MessageBundle.format("operand")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);
add(jXTitledSeparator1, gridBagConstraints);
jPanel3.setLayout(new java.awt.GridLayout());
jButton1.setText(" + ");
jButton1.setBorderPainted(false);
jButton1.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton1.setName(" +"); // NOI18N
jPanel3.add(jButton1);
jButton2.setText(" - ");
jButton2.setBorderPainted(false);
jButton2.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton2.setName(" -"); // NOI18N
jPanel3.add(jButton2);
jButton6.setText(" / ");
jButton6.setBorderPainted(false);
jButton6.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton6.setName(" /"); // NOI18N
jPanel3.add(jButton6);
jButton7.setText(" * ");
jButton7.setBorderPainted(false);
jButton7.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton7.setName(" *"); // NOI18N
jPanel3.add(jButton7);
jButton8.setText(" ( ) ");
jButton8.setBorderPainted(false);
jButton8.setMargin(new java.awt.Insets(0, 0, 0, 0));
jButton8.setName("( )"); // NOI18N
jPanel3.add(jButton8);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
add(jPanel3, gridBagConstraints);
jScrollPane3.setViewportView(guiFunctions);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 5;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
add(jScrollPane3, gridBagConstraints);
jPanel1.setLayout(new java.awt.GridLayout(1, 2));
typeGroup.add(guiSimple);
guiSimple.setText(MessageBundle.format("cql_simple")); // NOI18N
guiSimple.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
guiSimpleguiToggleAction(evt);
}
});
jPanel1.add(guiSimple);
typeGroup.add(guiAdvanced);
guiAdvanced.setText(MessageBundle.format("cql_advanced")); // NOI18N
guiAdvanced.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
guiAdvancedguiToggleAction(evt);
}
});
jPanel1.add(guiAdvanced);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
add(jPanel1, gridBagConstraints);
}// </editor-fold>//GEN-END:initComponents
private void guiSimpleguiToggleAction(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_guiSimpleguiToggleAction
DEFAULT_SIMPLE = guiSimple.isSelected();
updateSimpleAdvanced();
}//GEN-LAST:event_guiSimpleguiToggleAction
private void guiAdvancedguiToggleAction(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_guiAdvancedguiToggleAction
DEFAULT_SIMPLE = guiSimple.isSelected();
updateSimpleAdvanced();
}//GEN-LAST:event_guiAdvancedguiToggleAction
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JToggleButton guiAdvanced;
private javax.swing.JPanel guiFilterOps;
private javax.swing.JTree guiFunctions;
private javax.swing.JToggleButton guiSimple;
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton10;
private javax.swing.JButton jButton11;
private javax.swing.JButton jButton12;
private javax.swing.JButton jButton13;
private javax.swing.JButton jButton14;
private javax.swing.JButton jButton15;
private javax.swing.JButton jButton16;
private javax.swing.JButton jButton17;
private javax.swing.JButton jButton18;
private javax.swing.JButton jButton19;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton20;
private javax.swing.JButton jButton21;
private javax.swing.JButton jButton22;
private javax.swing.JButton jButton23;
private javax.swing.JButton jButton24;
private javax.swing.JButton jButton25;
private javax.swing.JButton jButton26;
private javax.swing.JButton jButton27;
private javax.swing.JButton jButton28;
private javax.swing.JButton jButton29;
private javax.swing.JButton jButton3;
private javax.swing.JButton jButton30;
private javax.swing.JButton jButton31;
private javax.swing.JButton jButton32;
private javax.swing.JButton jButton33;
private javax.swing.JButton jButton34;
private javax.swing.JButton jButton35;
private javax.swing.JButton jButton36;
private javax.swing.JButton jButton37;
private javax.swing.JButton jButton38;
private javax.swing.JButton jButton39;
private javax.swing.JButton jButton4;
private javax.swing.JButton jButton40;
private javax.swing.JButton jButton41;
private javax.swing.JButton jButton42;
private javax.swing.JButton jButton43;
private javax.swing.JButton jButton5;
private javax.swing.JButton jButton6;
private javax.swing.JButton jButton7;
private javax.swing.JButton jButton8;
private javax.swing.JButton jButton9;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JPanel jPanel5;
private javax.swing.JPanel jPanel6;
private javax.swing.JScrollPane jScrollPane3;
private org.jdesktop.swingx.JXTitledSeparator jXTitledSeparator1;
private org.jdesktop.swingx.JXTitledSeparator jXTitledSeparator2;
private org.jdesktop.swingx.JXTitledSeparator jXTitledSeparator3;
private org.jdesktop.swingx.JXTitledSeparator jXTitledSeparator4;
private org.jdesktop.swingx.JXTitledSeparator jXTitledSeparator5;
private javax.swing.ButtonGroup typeGroup;
// End of variables declaration//GEN-END:variables
}