
net.sourceforge.squirrel_sql.client.update.gui.UpdateSummaryDialog Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of squirrel-sql Show documentation
Show all versions of squirrel-sql Show documentation
This is the jar that contains the main application classes which are very specific to
SQuirreLSQL.
package net.sourceforge.squirrel_sql.client.update.gui;
/*
* Copyright (C) 2007 Rob Manning
* [email protected]
*
* 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; either
* version 2.1 of the License, or (at your option) any later version.
*
* 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.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.util.List;
import javax.swing.AbstractAction;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.KeyStroke;
import net.sourceforge.squirrel_sql.client.update.UpdateController;
import net.sourceforge.squirrel_sql.fw.gui.GUIUtils;
import net.sourceforge.squirrel_sql.fw.util.StringManager;
import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory;
/**
* This dialog displays a summary of update information
*/
public class UpdateSummaryDialog extends JDialog {
private static final long serialVersionUID = 1L;
/** Internationalized strings for this class. */
private static final StringManager s_stringMgr = StringManagerFactory.getStringManager(UpdateSummaryDialog.class);
private UpdateSummaryTable _updateSummaryTable;
private JLabel _installedVersionLabel = null;
private JLabel _availableVersionLabel = null;
private String _installedVersion = null;
private String _availableVersion = null;
static interface i18n {
// i18n[UpdateSummaryDialog.applyLabel=Apply Changes]
String APPLY_LABEL = s_stringMgr.getString("UpdateSummaryDialog.applyLabel");
// i18n[UpdateSummaryDialog.title=Update Summary]
String TITLE = s_stringMgr.getString("UpdateSummaryDialog.title");
// i18n[UpdateSummaryDialog.currentVersionPrefix=Current Version:]
String AVAILABLE_VERSION_PREFIX =
s_stringMgr.getString("UpdateSummaryDialog.currentVersionPrefix");
// i18n[UpdateSummaryDialog.installedVersionPrefix=Installed Version:]
String INSTALLED_VERSION_PREFIX =
s_stringMgr.getString("UpdateSummaryDialog.installedVersionPrefix");
//i18n[UpdateSummaryDialog.close=Close]
String CLOSE_LABEL =
s_stringMgr.getString("UpdateSummaryDialog.close");
}
public UpdateSummaryDialog(Frame owner, List artifactStatus,
UpdateController updateController)
{
super(owner, i18n.TITLE);
createGUI(artifactStatus, updateController);
}
public void setInstalledVersion(String installedVersion) {
_installedVersion = installedVersion;
StringBuilder tmp = new StringBuilder(i18n.INSTALLED_VERSION_PREFIX);
tmp.append(" ");
tmp.append(installedVersion);
_installedVersionLabel.setText(tmp.toString());
setReleaseVersionWillChangeFlag();
}
public void setAvailableVersion(String availableVersion) {
_availableVersion = availableVersion;
StringBuilder tmp = new StringBuilder(i18n.AVAILABLE_VERSION_PREFIX);
tmp.append(" ");
tmp.append(availableVersion);
_availableVersionLabel.setText(tmp.toString());
setReleaseVersionWillChangeFlag();
}
private void setReleaseVersionWillChangeFlag() {
if (_availableVersion == null || _installedVersion == null) {
return;
}
_updateSummaryTable.setReleaseVersionWillChange(!_availableVersion.equals(_installedVersion));
}
private void createGUI(final List artifactStatus,
final UpdateController updateController) {
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
final Container contentPane = getContentPane();
contentPane.setLayout(new BorderLayout());
_installedVersionLabel = new JLabel();
_installedVersionLabel.setBorder(BorderFactory.createEmptyBorder(1, 4, 1, 4));
_availableVersionLabel = new JLabel();
_availableVersionLabel.setBorder(BorderFactory.createEmptyBorder(1, 4, 1, 4));
JPanel labelPanel = new JPanel();
labelPanel.add(_installedVersionLabel);
labelPanel.add(_availableVersionLabel);
// Label panel containing the versions for the update at top of dialog.
contentPane.add(labelPanel, BorderLayout.NORTH);
UpdateSummaryTableModel model = new UpdateSummaryTableModel(artifactStatus);
_updateSummaryTable = new UpdateSummaryTable(artifactStatus, model);
contentPane.add(new JScrollPane(_updateSummaryTable), BorderLayout.CENTER);
final JPanel btnsPnl = new JPanel();
final JButton okBtn = new JButton(i18n.APPLY_LABEL);
okBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
List changes =
_updateSummaryTable.getUserRequestedChanges();
updateController.applyChanges(changes, _updateSummaryTable.getReleaseVersionWillChange());
}
});
btnsPnl.add(okBtn);
final JButton closeBtn = new JButton(i18n.CLOSE_LABEL);
closeBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
dispose();
}
});
btnsPnl.add(closeBtn);
contentPane.add(btnsPnl, BorderLayout.SOUTH);
AbstractAction closeAction = new AbstractAction() {
private static final long serialVersionUID = 1L;
public void actionPerformed(ActionEvent actionEvent) {
setVisible(false);
dispose();
}
};
KeyStroke escapeStroke = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0);
getRootPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT)
.put(escapeStroke, "CloseAction");
getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)
.put(escapeStroke, "CloseAction");
getRootPane().getInputMap(JComponent.WHEN_FOCUSED).put(escapeStroke,
"CloseAction");
getRootPane().getActionMap().put("CloseAction", closeAction);
pack();
setSize(655, 500);
GUIUtils.centerWithinParent(this);
setResizable(true);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy