package org.openswing.swing.mdi.client;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import org.openswing.swing.internationalization.java.*;
import org.openswing.swing.util.client.*;
/**
* <p>Title: OpenSwing Framework</p>
* <p>Description: Dialog window used to change the language inside the MDI Frame.</p>
* <p>Copyright: Copyright (C) 2006 Mauro Carniel</p>
*
* <p> This file is part of OpenSwing Framework.
* This library is free software; you can redistribute it and/or
* modify it under the terms of the (LGPL) Lesser General Public
* License as published by the Free Software Foundation;
*
* GNU LESSER GENERAL PUBLIC LICENSE
* Version 2.1, February 1999
*
* 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
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* The author may be contacted at:
* maurocarniel@tin.it</p>
*
* @author Mauro Carniel
* @version 1.0
*/
public class ChangeLanguageDialog extends JDialog {
JPanel mainPanel = new JPanel();
BorderLayout borderLayout2 = new BorderLayout();
GridBagLayout gridBagLayout1 = new GridBagLayout();
JScrollPane scrollPane = new JScrollPane();
JButton changeButton = new JButton();
JButton cancelButton = new JButton();
JList langList = new JList();
private MDIFrame frame = null;
private MDIController controller = null;
public ChangeLanguageDialog(MDIFrame frame,MDIController controller) {
super(frame, ClientSettings.getInstance().getResources().getResource("change language"), true);
this.frame = frame;
this.controller = controller;
try {
jbInit();
init(controller.getLanguages());
setSize(300,200);
ClientUtils.centerDialog(frame,this);
setVisible(true);
}
catch(Exception ex) {
ex.printStackTrace();
}
}
/**
* Initialize the list with the languages.
*/
private void init(ArrayList languages) {
DefaultListModel model = new DefaultListModel();
for(int i=0;i<languages.size();i++)
model.addElement(languages.get(i));
langList.setModel(model);
langList.revalidate();
langList.setSelectedIndex(0);
}
private void jbInit() throws Exception {
mainPanel.setLayout(gridBagLayout1);
this.getContentPane().setLayout(borderLayout2);
changeButton.setMnemonic(ClientSettings.getInstance().getResources().getResource("changemnemonic").charAt(0));
changeButton.setText(ClientSettings.getInstance().getResources().getResource("change language"));
changeButton.addActionListener(new ChangeLanguageDialog_changeButton_actionAdapter(this));
cancelButton.setMnemonic(ClientSettings.getInstance().getResources().getResource("cancelmnemonic").charAt(0));
cancelButton.setText(ClientSettings.getInstance().getResources().getResource("cancel"));
cancelButton.addActionListener(new ChangeLanguageDialog_cancelButton_actionAdapter(this));
langList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
this.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
getContentPane().add(mainPanel, BorderLayout.CENTER);
mainPanel.add(scrollPane, new GridBagConstraints(0, 0, 1, 2, 1.0, 1.0
,GridBagConstraints.NORTHWEST, GridBagConstraints.BOTH, new Insets(5, 5, 5, 15), 0, 0));
mainPanel.add(changeButton, new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0
,GridBagConstraints.SOUTHWEST, GridBagConstraints.NONE, new Insets(30, 5, 5, 5), 0, 0));
mainPanel.add(cancelButton, new GridBagConstraints(1, 1, 1, 1, 0.0, 0.0
,GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 5), 0, 0));
scrollPane.getViewport().add(langList, null);
}
void cancelButton_actionPerformed(ActionEvent e) {
setVisible(false);
}
void changeButton_actionPerformed(ActionEvent e) {
if (langList.getSelectedIndex()==-1)
return;
Language lang = (Language)langList.getModel().getElementAt(langList.getSelectedIndex());
ClientSettings.getInstance().setLanguage(lang.getLanguageId());
setVisible(false);
frame.setVisible(false);
frame.dispose();
try {
if (ClientUtils.getServerURL() != null) {
// if this parameter is setted, then this is a three-tier application that uses "org.openswing.swing.server.Controller" class on server-side
ClientUtils.getData("changeLanguage", lang.getLanguageId());
}
}
catch (Exception ex) {
}
new MDIFrame(controller);
}
}
class ChangeLanguageDialog_cancelButton_actionAdapter implements java.awt.event.ActionListener {
ChangeLanguageDialog adaptee;
ChangeLanguageDialog_cancelButton_actionAdapter(ChangeLanguageDialog adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.cancelButton_actionPerformed(e);
}
}
class ChangeLanguageDialog_changeButton_actionAdapter implements java.awt.event.ActionListener {
ChangeLanguageDialog adaptee;
ChangeLanguageDialog_changeButton_actionAdapter(ChangeLanguageDialog adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.changeButton_actionPerformed(e);
}
}