FileDocCategorySizeDatePackage
WebSeedPanel.javaAPI DocAzureus 3.0.3.48375Fri Sep 14 11:21:26 BST 2007org.gudy.azureus2.ui.swt.maketorrent

WebSeedPanel

public class WebSeedPanel extends org.gudy.azureus2.ui.swt.wizard.AbstractWizardPanel implements WebSeedsEditorListener
author
Olivier

Fields Summary
private org.eclipse.swt.widgets.Combo
configList
private org.eclipse.swt.widgets.Tree
configDetails
private org.eclipse.swt.widgets.Button
btnNew
private org.eclipse.swt.widgets.Button
btnEdit
private org.eclipse.swt.widgets.Button
btnDelete
Constructors Summary
public WebSeedPanel(NewTorrentWizard wizard, org.gudy.azureus2.ui.swt.wizard.AbstractWizardPanel previous)

    super(wizard, previous);
  
Methods Summary
public org.gudy.azureus2.ui.swt.wizard.IWizardPanelgetNextPanel()

    if (((NewTorrentWizard) wizard).create_from_dir) {
      return new DirectoryPanel(((NewTorrentWizard) wizard), this);
    } else {
      return new SingleFilePanel(((NewTorrentWizard) wizard), this);
    }
  
public booleanisNextEnabled()

    return true;
  
voidrefreshDetails()

    configDetails.removeAll();
    Map webseeds = ((NewTorrentWizard) wizard).webseeds;
    Iterator iter = webseeds.entrySet().iterator();
    while(iter.hasNext()) {
        Map.Entry	entry = (Map.Entry)iter.next();
        TreeItem itemRoot = new TreeItem(configDetails,SWT.NULL);
        itemRoot.setText((String)entry.getKey());
        Iterator iter2 = ((List)entry.getValue()).iterator();
        while(iter2.hasNext()) {
          String url = (String) iter2.next();
          new TreeItem(itemRoot,SWT.NULL).setText(url);
        }
        itemRoot.setExpanded(true);
    }      
  
private voidrefreshList(java.lang.String toBeSelected)

    Map webseeds = TrackersUtil.getInstance().getWebSeeds();
    configList.removeAll();
    Iterator iter = webseeds.keySet().iterator();
    while(iter.hasNext()) {
      configList.add((String)iter.next());
    }
    int selection = configList.indexOf(toBeSelected);
    if(selection != -1) {
      configList.select(selection);      
    } else if(configList.getItemCount() > 0) {
      configList.select(0);      
    }
    updateWebSeeds();
  
voidsetEditDeleteEnable()

    if(configList.getItemCount() > 0) {
      btnEdit.setEnabled(true);
      btnDelete.setEnabled(true);
    } else {
      btnEdit.setEnabled(false);
      btnDelete.setEnabled(false);
    }
  
private voidsetNext()

	  wizard.setNextEnabled(true);
	  wizard.setErrorMessage("");
  
public voidshow()

    wizard.setTitle(MessageText.getString("wizard.webseed.title"));
    wizard.setCurrentInfo("");
    Composite rootPanel = wizard.getPanel();
    GridLayout layout = new GridLayout();
    layout.numColumns = 1;
    rootPanel.setLayout(layout);

    Composite panel = new Composite(rootPanel, SWT.NULL);
    GridData gridData = new GridData(GridData.VERTICAL_ALIGN_CENTER | GridData.FILL_HORIZONTAL);
    panel.setLayoutData(gridData);
    layout = new GridLayout();
    layout.numColumns = 3;
    panel.setLayout(layout);

    //Line :
    // Web Seed Configuration
    
    final Label labelTitle = new Label(panel,SWT.NULL);
    Messages.setLanguageText(labelTitle, "wizard.webseed.configuration");
    gridData = new GridData();
    gridData.horizontalSpan = 3;
    labelTitle.setLayoutData(gridData);  
    
    configList = new Combo(panel,SWT.READ_ONLY);
    gridData = new GridData(GridData.FILL_HORIZONTAL);
    gridData.horizontalSpan = 3;
    configList.setLayoutData(gridData);
    configList.addListener(SWT.Selection,new Listener() {
      public void handleEvent(Event e) {                
        updateWebSeeds();
        refreshDetails();
      }
    });
           
    btnNew = new Button(panel, SWT.PUSH);   
    Messages.setLanguageText(btnNew, "wizard.multitracker.new");
    gridData = new GridData();
    gridData.widthHint = 100;
    btnNew.setLayoutData(gridData);
    btnNew.addListener(SWT.Selection, new Listener() {
      public void handleEvent(Event e) {
    	Map webseeds = new HashMap();
       	webseeds.put( "getright", new ArrayList());
       	webseeds.put( "webseed", new ArrayList());
        new WebSeedsEditor(null,webseeds,WebSeedPanel.this);
      }
    });
    
    btnEdit = new Button(panel, SWT.PUSH);   
    Messages.setLanguageText(btnEdit, "wizard.multitracker.edit");
    gridData = new GridData();
    gridData.widthHint = 100;
    btnEdit.setLayoutData(gridData);
    btnEdit.addListener(SWT.Selection, new Listener() {
      public void handleEvent(Event e) {
        int selection = configList.getSelectionIndex();
        String selected = configList.getItem(selection);
        Map webseeds = TrackersUtil.getInstance().getWebSeeds();
        new WebSeedsEditor(selected,(Map)webseeds.get(selected),WebSeedPanel.this);
      }
    });
    
    btnDelete = new Button(panel, SWT.PUSH);   
    Messages.setLanguageText(btnDelete, "wizard.multitracker.delete");
    gridData = new GridData(GridData.HORIZONTAL_ALIGN_END);
    gridData.widthHint = 100;    
    btnDelete.setLayoutData(gridData);
    btnDelete.addListener(SWT.Selection, new Listener() {
      public void handleEvent(Event e) {
        int selection = configList.getSelectionIndex();
        String selected = configList.getItem(selection);
        TrackersUtil.getInstance().removeWebSeed(selected);
        refreshList("");
        refreshDetails();
        setEditDeleteEnable();
      }
    });
    final Label labelSeparator = new Label(panel,SWT.SEPARATOR | SWT.HORIZONTAL);
    gridData = new GridData(GridData.FILL_HORIZONTAL);
    gridData.horizontalSpan = 3;
    labelSeparator.setLayoutData(gridData);
    
    configDetails = new Tree(panel,SWT.BORDER);
    gridData = new GridData(GridData.FILL_HORIZONTAL);
    gridData.heightHint = 150;
    gridData.horizontalSpan = 3;
    configDetails.setLayoutData(gridData);    
    
    refreshList(((NewTorrentWizard)wizard).webSeedConfig);
    refreshDetails(); 
    setEditDeleteEnable();
private voidupdateWebSeeds()

    int selection = configList.getSelectionIndex();
    if(selection == -1) {
      ((NewTorrentWizard)wizard).webSeedConfig = "";
      ((NewTorrentWizard)wizard).webseeds = new HashMap();
      setNext();
      return;
    }
    String selected = configList.getItem(selection);
    ((NewTorrentWizard)wizard).webSeedConfig = selected;
    Map webseeds = TrackersUtil.getInstance().getWebSeeds();
    ((NewTorrentWizard)wizard).webseeds = (Map) webseeds.get(selected);
    setNext();
  
public voidwebSeedsChanged(java.lang.String oldName, java.lang.String newName, java.util.Map ws)

    TrackersUtil util = TrackersUtil.getInstance();
    if(oldName != null && !oldName.equals(newName))
      util.removeWebSeed(oldName);
    util.addWebSeed(newName,ws);
    refreshList(newName);
    refreshDetails();
    setEditDeleteEnable();