Package dropfile

Source Code of dropfile.DropFileApplication

package dropfile;

import java.io.IOException;

import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

import zetes.wings.DefaultAboutBox;
import zetes.wings.actions.Handler;
import zetes.wings.base.ApplicationBase;
import dropfile.protocol.Client;
import dropfile.protocol.ClientConnection;
import dropfile.protocol.Server;


public class DropFileApplication extends ApplicationBase<DefaultAboutBox, Session, SessionWindow, DropFileMenuConstructor, SessionViewWindowsManager>
{
  private Client client = new Client();
  private Server server;
 
  @Override
  public String getTitle()
  {
    return "DropFile";
  }

  @Override
  public DefaultAboutBox createAboutBox(SessionWindow window)
  {
    DefaultAboutBox res = new DefaultAboutBox(window);
    res.setApplicationName(getTitle());
    res.setIconResourceName("/tinyviewer/wingphotos64.png");
    res.setDescriptionText("A simple network file sender & receiver.\nThis application shows the power of ZetesWings with Android classpath");
    res.setCopyrightText("Copyright \u00a9 2014, Ilya Mizus");
    res.setWindowSize(new Point(370, 180));
    return res;
  }
 
  @Override
  public Session loadFromFile(String fileName)
  {
    //return new Session(fileName);
    return null;
  }
 
  private Handler<SessionWindow> newSessionHandler = new Handler<SessionWindow>() {
   
    @Override
    public void execute(SessionWindow window) {
/*      Shell dummyShell = new Shell(Display.getDefault());
      FileDialog fileDialog = new FileDialog(dummyShell, SWT.OPEN | SWT.MULTI);
      fileDialog.setText("Open file");
      fileDialog.setFilterNames(new String[] { "All files" });
      fileDialog.setFilterExtensions(new String[] { "*.*" });
      String firstFile = fileDialog.open();
      if (firstFile != null)
      {
        String[] names = fileDialog.getFileNames();
        ArrayList<Session> documents = new ArrayList<Session>();
       
        // Creating documents for files
        for (int i = 0; i < names.length; i++)
        {
          String fileName = fileDialog.getFilterPath() + "/" + names[i];
          documents.add(new Session(fileName));
        }
       
        getViewWindowsManager().openWindowsForDocuments(documents.toArray(new Session[] {}));
      }
      dummyShell.dispose();*/
     
      Shell shell = window != null ? window.getShell() : new Shell();
      CreateNewSessionDialog dialog = new CreateNewSessionDialog(shell, client);
      ClientConnection newConnection = (ClientConnection) dialog.open();
      if (newConnection != null) {
        getViewWindowsManager().openWindowForDocument(new Session(newConnection));
      }
    }
  };
 
  public DropFileApplication()
  {
    try {
      server = new Server();
    } catch (IOException e) {
      System.err.println("Can't create the server");
      e.printStackTrace();
      //Display.getCurrent().dispose();
    }
  }
 
  @Override
  public SessionViewWindowsManager createViewWindowsManager()
  {
    return new SessionViewWindowsManager(server);
  }

  @Override
  public DropFileMenuConstructor createMenuConstructor(SessionViewWindowsManager viewWindowsManager)
  {
    DropFileMenuConstructor menuConstructor = new DropFileMenuConstructor(viewWindowsManager);
    menuConstructor.setNewSessionHandler(newSessionHandler);
    return menuConstructor;
  }

  @Override
  public boolean needsAtLeastOneView()
  {
    return false;
  }

  public static void main(String... args)
  {
    new DropFileApplication().run(args);
  }
}
TOP

Related Classes of dropfile.DropFileApplication

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.