/*
* Copyright 2007 - 2017 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package net.sf.jailer.ui.databrowser;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.List;
import javax.swing.DefaultComboBoxModel;
import net.sf.jailer.datamodel.Association;
import net.sf.jailer.ui.UIUtil;
/**
* Query Builder Path Selector Dialog.
*
* @deprecated this dialog is no longer used
* @author Ralf Wisser
*/
public class QueryBuilderPathSelector extends javax.swing.JDialog {
private static final long serialVersionUID = 3231933816703766740L;
/** Creates new form QueryBuilderPathSelector */
public QueryBuilderPathSelector(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
addWindowFocusListener(new WindowAdapter() {
@Override
public void windowGainedFocus(WindowEvent e) {
okButton.grabFocus();
}
});
pack();
setSize(Math.max(400, getWidth()), getHeight());
UIUtil.initPeer();
}
/** 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.
*/
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
java.awt.GridBagConstraints gridBagConstraints;
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
toComboBox = new net.sf.jailer.ui.JComboBox();
fromLabel = new javax.swing.JLabel();
okButton = new javax.swing.JButton();
jLabel3 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("Query Builder");
getContentPane().setLayout(new java.awt.GridBagLayout());
jLabel1.setText(" join tables from ");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
getContentPane().add(jLabel1, gridBagConstraints);
jLabel2.setText(" to ");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
getContentPane().add(jLabel2, gridBagConstraints);
toComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
toComboBox.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
toComboBoxItemStateChanged(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.weightx = 1.0;
getContentPane().add(toComboBox, gridBagConstraints);
fromLabel.setFont(new java.awt.Font("DejaVu Sans", 1, 13));
fromLabel.setText("TABLE");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
getContentPane().add(fromLabel, gridBagConstraints);
okButton.setText(" Ok ");
okButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
okButtonActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 3;
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(4, 0, 0, 0);
getContentPane().add(okButton, gridBagConstraints);
jLabel3.setText(" ");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
getContentPane().add(jLabel3, gridBagConstraints);
pack();
}// </editor-fold>//GEN-END:initComponents
private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okButtonActionPerformed
ok = true;
setVisible(false);
}//GEN-LAST:event_okButtonActionPerformed
private void toComboBoxItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_toComboBoxItemStateChanged
backCount = ((ToElement) toComboBox.getSelectedItem()).backCount;
ok = true;
setVisible(false);
}//GEN-LAST:event_toComboBoxItemStateChanged
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JLabel fromLabel;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JButton okButton;
private net.sf.jailer.ui.JComboBox toComboBox;
// End of variables declaration//GEN-END:variables
private static class ToElement {
public int backCount;
public String name;
public String toString() {
return name;
}
}
private int backCount;
private boolean ok;
/**
* Opens the dialog and lets select the number of tables to join.
*/
public int selectBackCount(List<Association> associationsOnPath) {
if (associationsOnPath.isEmpty()) {
return 0;
}
fromLabel.setText(associationsOnPath.get(0).source.getUnqualifiedName());
backCount = -1;
ok = false;
DefaultComboBoxModel model = new DefaultComboBoxModel();
int i = 0;
ToElement element = new ToElement();
element.backCount = i++;
element.name = associationsOnPath.get(0).source.getUnqualifiedName();
model.addElement(element);
for (Association a: associationsOnPath) {
element = new ToElement();
element.backCount = i++;
element.name = a.destination.getUnqualifiedName();
model.addElement(element);
}
toComboBox.setModel(model);
toComboBox.setSelectedIndex(i - 1);
setLocation(getParent().getX() + (getParent().getWidth() - getWidth()) / 2, getParent().getY() + (getParent().getHeight() - getHeight()) / 2);
setVisible(true);
return ok? backCount : -1;
}
}