Package com.aelitis.azureus.ui.swt.devices

Source Code of com.aelitis.azureus.ui.swt.devices.DevicesWizard

package com.aelitis.azureus.ui.swt.devices;


import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;


import org.gudy.azureus2.core3.internat.MessageText;
import org.gudy.azureus2.core3.util.Debug;
import org.gudy.azureus2.ui.swt.Utils;
import org.gudy.azureus2.ui.swt.components.shell.ShellFactory;


import com.aelitis.azureus.core.devices.Device;
import com.aelitis.azureus.core.devices.DeviceTemplate;
import com.aelitis.azureus.ui.swt.imageloader.ImageLoader;

public class
DevicesWizard
{
  private DeviceManagerUI    device_manager_ui;
 
  private Display display;
 
  private Shell shell;
 
 
  private Label title;
 
 
  private Font boldFont;
  private Font titleFont;
  private Font subTitleFont;
  private Font textInputFont;
 
 
  private Composite main;
 
 
  private ImageLoader imageLoader;
 
 
  public
  DevicesWizard(
    DeviceManagerUI    dm_ui )
  {
    device_manager_ui  = dm_ui;
   
    imageLoader = ImageLoader.getInstance();
       
    shell = ShellFactory.createMainShell(SWT.TITLE | SWT.CLOSE | SWT.ICON
        | SWT.RESIZE);
   
    shell.setSize(650,400);
     
    Utils.centreWindow(shell);
   
    shell.setMinimumSize(550,400);
   
    display = shell.getDisplay();
   
    Utils.setShellIcon(shell);
   
   
    createFonts();
   
    shell.setText(MessageText.getString("wizard.device.title"));
   
    shell.addListener(SWT.Dispose, new Listener() {
      public void handleEvent(Event event) {

        imageLoader.releaseImage("wizard_header_bg");
       
        if(titleFont != null && !titleFont.isDisposed()) {
          titleFont.dispose();
        }
       
        if(textInputFont != null && !textInputFont.isDisposed()) {
          textInputFont.dispose();
        }
       
        if(boldFont != null && !boldFont.isDisposed()) {
          boldFont.dispose();
        }
       
        if(subTitleFont != null && !subTitleFont.isDisposed()) {
          subTitleFont.dispose();
        }
      }
    });
   
    Composite header = new Composite(shell, SWT.NONE);
    header.setBackgroundMode(SWT.INHERIT_DEFAULT);
    header.setBackgroundImage(imageLoader.getImage("wizard_header_bg"));
    Label topSeparator = new Label(shell,SWT.SEPARATOR |SWT.HORIZONTAL);
    main = new Composite(shell, SWT.NONE);
    Label bottomSeparator = new Label(shell,SWT.SEPARATOR |SWT.HORIZONTAL);
    Composite footer = new Composite(shell, SWT.NONE);
   
    FormLayout layout = new FormLayout();
    shell.setLayout(layout);
   
    FormData data;
   
    data = new FormData();
    data.top = new FormAttachment(0,0);
    data.left = new FormAttachment(0,0);
    data.right = new FormAttachment(100,0);
    //data.height = 50;
    header.setLayoutData(data);
   
    data = new FormData();
    data.top = new FormAttachment(header,0);
    data.left = new FormAttachment(0,0);
    data.right = new FormAttachment(100,0);
    topSeparator.setLayoutData(data);
   
    data = new FormData();
    data.top = new FormAttachment(topSeparator,0);
    data.left = new FormAttachment(0,0);
    data.right = new FormAttachment(100,0);
    data.bottom = new FormAttachment(bottomSeparator,0);
    main.setLayoutData(data);
   
    data = new FormData();
    data.left = new FormAttachment(0,0);
    data.right = new FormAttachment(100,0);
    data.bottom = new FormAttachment(footer,0);
    bottomSeparator.setLayoutData(data);
   
    data = new FormData();
    data.bottom = new FormAttachment(100,0);
    data.left = new FormAttachment(0,0);
    data.right = new FormAttachment(100,0);
    footer.setLayoutData(data);
   
    populateHeader(header);
    populateFooter(footer);
   
    shell.layout();
    shell.open();
  }
 
  private void
  populateHeader(
    Composite header)
  {
    header.setBackground(display.getSystemColor(SWT.COLOR_WHITE));
   
    title = new Label(header, SWT.WRAP);
   
    title.setFont(titleFont);
   
    title.setText( MessageText.getString("device.wizard.header") );
   
    FillLayout layout = new FillLayout();
   
    layout.marginHeight = 10;
   
    layout.marginWidth = 10;
   
    header.setLayout(layout);
  }
 

 

 
  private void
  createFonts()
  { 
    FontData[] fDatas = shell.getFont().getFontData();
   
    for(int i = 0 ; i < fDatas.length ; i++) {
      fDatas[i].setStyle(SWT.BOLD);
    }
    boldFont = new Font(display,fDatas);
   
   
    for(int i = 0 ; i < fDatas.length ; i++) {
      if(org.gudy.azureus2.core3.util.Constants.isOSX) {
        fDatas[i].setHeight(12);
      } else {
        fDatas[i].setHeight(10);
      }
    }
    subTitleFont = new Font(display,fDatas);
   
    for(int i = 0 ; i < fDatas.length ; i++) {
      if(org.gudy.azureus2.core3.util.Constants.isOSX) {
        fDatas[i].setHeight(17);
      } else {
        fDatas[i].setHeight(14);
      }
    }
    titleFont = new Font(display,fDatas);
   
   
    for(int i = 0 ; i < fDatas.length ; i++) {
      if(org.gudy.azureus2.core3.util.Constants.isOSX) {
        fDatas[i].setHeight(14);
      } else {
        fDatas[i].setHeight(12);
      }
      fDatas[i].setStyle(SWT.NONE);
    }
    textInputFont = new Font(display,fDatas)
  }
 
  private void
  populateFooter(
    Composite footer)
  {
    Button cancelButton;
    Button createButton;

    cancelButton = new Button(footer,SWT.PUSH);
    cancelButton.setText(MessageText.getString("Button.cancel"));
     
    createButton = new Button(footer,SWT.PUSH);
    createButton.setText(MessageText.getString("device.wizard.create"));
   
   
    FormLayout layout = new FormLayout();
    layout.marginHeight = 5;
    layout.marginWidth = 5;
    layout.spacing = 5;
   
    footer.setLayout(layout);
    FormData data;
               
    data = new FormData();
    data.right = new FormAttachment(100);
    data.width = 100;
    cancelButton.setLayoutData(data);
   
    data = new FormData();
    data.left = new FormAttachment(0);
    data.width = 175;
    createButton.setLayoutData(data);
   
   
   
    createButton.addListener(SWT.Selection, new Listener() {
      public void handleEvent(Event arg0) {
       
        try{
          DeviceTemplate[] templates = device_manager_ui.getDeviceManager().getDeviceTemplates( Device.DT_MEDIA_RENDERER );
         
          for ( DeviceTemplate template: templates ){
           
            if ( !template.isAuto()){
         
              Device device = template.createInstance( template.getName() + " test!" );
         
              device.requestAttention();
             
              break;
            }
          }
         
        }catch( Throwable e ){
         
          Debug.printStackTrace(e);
        }
      }
    });
       
    cancelButton.addListener(SWT.Selection, new Listener() {
      public void handleEvent(Event arg0) {
        shell.close();
      }
    });
  }
 

 
  public static void
  main(
    String args[])
  {
    final DevicesWizard sw = new DevicesWizard( null );
       
    while( ! sw.shell.isDisposed()) {
      if(! sw.display.readAndDispatch()) {
        sw.display.sleep();
      }
    }
   
    sw.display.dispose();   
  }
}
TOP

Related Classes of com.aelitis.azureus.ui.swt.devices.DevicesWizard

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.