Package org.jmule.ui.swt.serverlistimportwindow

Source Code of org.jmule.ui.swt.serverlistimportwindow.ServerListImportWindow

/*
*  JMule - Java file sharing client
*  Copyright (C) 2007-2008 JMule team ( jmule@jmule.org / http://jmule.org )
*
*  Any parts of this program derived from other projects, or contributed
*  by third-party developers are copyrighted by their respective authors.
*
*  This program is free software; you can redistribute it and/or
*  modify it under the terms of the GNU General Public License
*  as published by the Free Software Foundation; either version 2
*  of the License, or (at your option) any later version.
*
*  This program 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 General Public License for more details.
*
*  You should have received a copy of the GNU General Public License
*  along with this program; if not, write to the Free Software
*  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
*
*/
package org.jmule.ui.swt.serverlistimportwindow;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.jmule.core.JMRunnable;
import org.jmule.core.JMuleCoreFactory;
import org.jmule.core.servermanager.ServerManager;
import org.jmule.core.servermanager.ServerManagerException;
import org.jmule.ui.JMuleUIComponent;
import org.jmule.ui.JMuleUIManager;
import org.jmule.ui.localizer._;
import org.jmule.ui.swt.SWTImageRepository;
import org.jmule.ui.swt.SWTThread;
import org.jmule.ui.swt.Utils;
import org.jmule.ui.swt.skin.SWTSkin;

/**
* Created on Aug 23, 2008
* @author binary256
* @version $Revision: 1.3 $
* Last changed by $Author: binary255 $ on $Date: 2009/09/20 09:05:15 $
*/
public class ServerListImportWindow implements JMuleUIComponent{

  private ServerManager server_manager;
  private Shell shell;
 
  private Button browse_button,ok_button, cancel_button;
  private Text file_path;
  private boolean allow_close = true;
 
  public void getCoreComponents() {
    server_manager = JMuleCoreFactory.getSingleton().getServerManager();
  }

  public void initUIComponents() {
    SWTSkin skin = null;
    try {
        skin = (SWTSkin)JMuleUIManager.getJMuleUI().getSkin();
    }catch(Throwable t) {}
   
    final Shell shell1=new Shell(SWTThread.getDisplay(),SWT.ON_TOP);
    shell=new Shell(shell1,SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);
   
    shell.setSize(400, 130);
    Utils.centreWindow(shell);
    shell.setText(_._("serverlistimportwindow.title"));
    shell.setImage(SWTImageRepository.getImage("import.png"));
   
   
    shell.setLayout(new GridLayout(1,false));
   
    Group group = new Group(shell,SWT.NONE);
    group.setLayoutData(new GridData(GridData.FILL_BOTH));
    group.setLayout(new GridLayout(3,false));
   
    Label label = new Label(group,SWT.NONE);
    label.setText(_._("serverlistimportwindow.label.file_path")+" : ");
   
    file_path = new Text(group,SWT.BORDER );
    file_path.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
   
    browse_button = new Button(group,SWT.NONE);
    browse_button.setFont(skin.getButtonFont());
    browse_button.setText(_._("serverlistimportwindow.button.browse"));
   
    browse_button.addSelectionListener(new SelectionAdapter() {
      public void widgetSelected(final SelectionEvent e) {
        FileDialog dialog = new FileDialog (shell, SWT.OPEN);
        dialog.setFilterNames (new String [] {"Server.met(*.met)", "All Files (*.*)"});
        dialog.setFilterExtensions (new String [] {"*.met", "*.*"});
        String result = dialog.open();
        if (result != null)
          file_path.setText(result);
    } });
   
   
    Composite button_bar = new Composite(shell,SWT.NONE);
    button_bar.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
   
    GridLayout layout = new GridLayout(2,false);
    button_bar.setLayout(layout);
   
    ok_button = new Button(button_bar,SWT.NONE);
    ok_button.setFont(skin.getButtonFont());
    ok_button.setText(_._("serverlistimportwindow.button.ok"));
    ok_button.setImage(SWTImageRepository.getImage("accept.png"));
    GridData grid_data = new GridData();
    grid_data.horizontalAlignment = GridData.END;
    grid_data.widthHint = 60;
    grid_data.grabExcessHorizontalSpace = true;
    ok_button.setLayoutData(grid_data);
    ok_button.addSelectionListener(new SelectionAdapter() {
      public void widgetSelected(final SelectionEvent e) {
        importServerList();
    } });
   
   
    cancel_button = new Button(button_bar,SWT.NONE);
    cancel_button.setFont(skin.getButtonFont());
    cancel_button.setText(_._("serverlistimportwindow.button.cancel"));
    cancel_button.setImage(SWTImageRepository.getImage("cancel2.png"));
    grid_data = new GridData();
    grid_data.widthHint = 80;
    cancel_button.setLayoutData(grid_data);
   
    cancel_button.addSelectionListener(new SelectionAdapter() {
      public void widgetSelected(final SelectionEvent e) {
        shell.close();
    } });
   
    shell.addListener(SWT.Close, new Listener() {
      public void handleEvent(Event arg0) {
        arg0.doit = allow_close;
      }
    });
   
    shell.open();
  }
 
  private void importServerList() {
    SWTThread.getDisplay().asyncExec(new JMRunnable() {
      public void JMRun() {
        setWindowStatus(false);
        try {
          server_manager.importList(file_path.getText());
        } catch (ServerManagerException e) {
          Utils.showWarningMessage(shell, _._("serverlistimportwindow.import_failed_title"),
              _._("serverlistimportwindow.import_failed")+"\n"+e.getLocalizedMessage());
        }
        setWindowStatus(true);
        shell.close();
      }
    });
  }

  private void setWindowStatus(boolean status) {
    allow_close = status;
    browse_button.setEnabled(status);
    ok_button.setEnabled(status);
    cancel_button.setEnabled(status);
    file_path.setEnabled(status);
  }
 
}
TOP

Related Classes of org.jmule.ui.swt.serverlistimportwindow.ServerListImportWindow

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.