/* * 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.util.ArrayList; import java.util.Collections; import java.util.List; import javax.swing.DefaultListModel; import net.sf.jailer.datamodel.DataModel; import net.sf.jailer.datamodel.Table; import net.sf.jailer.ui.UIUtil; /** * Dialog for selecting the table for a new table browser. * * @author Ralf Wisser */ @SuppressWarnings("serial") public abstract class NewTableBrowser extends javax.swing.JDialog { /** Creates new form NewTableBrowser */ public NewTableBrowser(java.awt.Frame parent, DataModel datamodel, boolean offerAlternatives) { super(parent, true); initComponents(); UIUtil.wireComponentWithButton(tableList, okButton); analyzeButton.setVisible(DataBrowserContext.isSupportsDataModelUpdates()); if (offerAlternatives) { setTitle(DataBrowserContext.getAppName(true)); okButton.setText(" Open Table "); } else { analyzeButton.setVisible(false); restoreSessionButton.setVisible(false); } DefaultListModel model = new DefaultListModel(); List<String> tables = new ArrayList<String>(); for (Table table: datamodel.getTables()) { tables.add(datamodel.getDisplayName(table)); } Collections.sort(tables); for (String tn: tables) { model.addElement(tn); } tableList.setModel(model); pack(); setSize(Math.max(400, getWidth()), 400); setLocation(300, 100); setVisible(true); } /** 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; jPanel1 = new javax.swing.JPanel(); jScrollPane1 = new javax.swing.JScrollPane(); tableList = new javax.swing.JList(); okButton = new javax.swing.JButton(); analyzeButton = new javax.swing.JButton(); restoreSessionButton = new javax.swing.JButton(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle("New Table Browser"); jPanel1.setLayout(new java.awt.GridBagLayout()); jScrollPane1.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED), "Tables")); tableList.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" }; public int getSize() { return strings.length; } public Object getElementAt(int i) { return strings[i]; } }); tableList.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); tableList.addListSelectionListener(new javax.swing.event.ListSelectionListener() { public void valueChanged(javax.swing.event.ListSelectionEvent evt) { tableListValueChanged(evt); } }); jScrollPane1.setViewportView(tableList); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 2; gridBagConstraints.gridwidth = 5; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; jPanel1.add(jScrollPane1, gridBagConstraints); okButton.setText(" OK "); okButton.setEnabled(false); okButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { okButtonActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 4; gridBagConstraints.gridy = 3; gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.weightx = 1.0; jPanel1.add(okButton, gridBagConstraints); analyzeButton.setText(" Analyze Database "); analyzeButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { analyzeButtonActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 3; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; jPanel1.add(analyzeButton, gridBagConstraints); restoreSessionButton.setText(" Restore Layout "); restoreSessionButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { restoreSessionButtonActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 3; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 16); jPanel1.add(restoreSessionButton, gridBagConstraints); getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER); pack(); }// </editor-fold>//GEN-END:initComponents private void tableListValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_tableListValueChanged okButton.setEnabled(true); }//GEN-LAST:event_tableListValueChanged private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okButtonActionPerformed setVisible(false); Object s = tableList.getSelectedValue(); if (s instanceof String) { openTableBrowser((String) s); } }//GEN-LAST:event_okButtonActionPerformed private void analyzeButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_analyzeButtonActionPerformed setVisible(false); openDatabaseAnalyzer(); }//GEN-LAST:event_analyzeButtonActionPerformed private void restoreSessionButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_restoreSessionButtonActionPerformed setVisible(false); restoreSession(); }//GEN-LAST:event_restoreSessionButtonActionPerformed abstract void openTableBrowser(String tableName); abstract void openDatabaseAnalyzer(); abstract void restoreSession(); // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton analyzeButton; private javax.swing.JPanel jPanel1; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JButton okButton; private javax.swing.JButton restoreSessionButton; private javax.swing.JList tableList; // End of variables declaration//GEN-END:variables }