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

Source Code of com.aelitis.azureus.ui.swt.devices.add.ManufacturerChooser

/**
* Created on Jul 14, 2009
*
* Copyright 2008 Vuze, Inc.  All rights reserved.
* 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; version 2 of the License only.
*
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
*/

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

import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.*;

import org.gudy.azureus2.ui.swt.Utils;

import com.aelitis.azureus.core.devices.*;
import com.aelitis.azureus.core.devices.DeviceManager.DeviceManufacturer;
import com.aelitis.azureus.ui.swt.skin.SWTSkin;
import com.aelitis.azureus.ui.swt.skin.SWTSkinObject;
import com.aelitis.azureus.ui.swt.skin.SWTSkinObjectContainer;
import com.aelitis.azureus.ui.swt.views.skin.SkinnedDialog;
import com.aelitis.azureus.ui.swt.views.skin.SkinnedDialog.SkinnedDialogClosedListener;

/**
* @author TuxPaper
* @created Jul 14, 2009
*
*/
public class ManufacturerChooser
{
  private SkinnedDialog skinnedDialog;
  private ClosedListener listener;
  protected DeviceManufacturer chosenMF;

  public void open(ClosedListener l) {
    this.listener = l;
    skinnedDialog = new SkinnedDialog("skin3_dlg_deviceadd_mfchooser",
        "shell", SWT.TITLE | SWT.BORDER);
   
    skinnedDialog.addCloseListener(new SkinnedDialogClosedListener() {
      public void skinDialogClosed(SkinnedDialog dialog) {
        if (listener != null) {
          listener.MfChooserClosed(chosenMF);
        }
      }
    });
   
    SWTSkin skin = skinnedDialog.getSkin();
    SWTSkinObject so= skin.getSkinObject("list");
    if (so instanceof SWTSkinObjectContainer) {
      SWTSkinObjectContainer soList = (SWTSkinObjectContainer) so;
     
      Composite parent = soList.getComposite();
     
      Canvas centerCanvas = new Canvas(parent, SWT.NONE);
      FormData fd = Utils.getFilledFormData();
      fd.bottom = null;
      fd.height = 0;
      centerCanvas.setLayoutData(fd);
     
     
      Composite area = new Composite(parent, SWT.NONE);
      RowLayout rowLayout = new RowLayout(SWT.VERTICAL);
      rowLayout.fill = true;
      area.setLayout(rowLayout);
      fd = Utils.getFilledFormData();
      fd.left = new FormAttachment(centerCanvas, 50, SWT.CENTER);
      fd.right = null;
      area.setLayoutData(fd);
     
      Listener btnListener = new Listener() {
        public void handleEvent(Event event) {
          chosenMF = (DeviceManufacturer) event.widget.getData("mf");
          skinnedDialog.close();
        }
      };
     
      DeviceManager deviceManager = DeviceManagerFactory.getSingleton();
      DeviceManufacturer[] mfs = deviceManager.getDeviceManufacturers(Device.DT_MEDIA_RENDERER);
      for (DeviceManufacturer mf : mfs) {
        DeviceTemplate[] deviceTemplates = mf.getDeviceTemplates();
        boolean hasNonAuto = false;
        for (DeviceTemplate deviceTemplate : deviceTemplates) {
          if (!deviceTemplate.isAuto()) {
            hasNonAuto = true;
            break;
          }
        }
        if (!hasNonAuto) {
          continue;
        }
        Button button = new Button(area, SWT.PUSH);
        button.setText(mf.getName());
        button.setData("mf", mf);
        button.addListener(SWT.MouseUp, btnListener);
      }
    }
   
    skinnedDialog.getShell().pack();
    skinnedDialog.open();
  }
 
  public static interface ClosedListener {
    public void MfChooserClosed(DeviceManufacturer mf);
  }
}
TOP

Related Classes of com.aelitis.azureus.ui.swt.devices.add.ManufacturerChooser

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.