⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 configsectioninterface.java

📁 基于JXTA开发平台的下载软件开发源代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*
 * File    : ConfigPanel*.java
 * Created : 11 mar. 2004
 * By      : TuxPaper
 * 
 * Copyright (C) 2004, 2005, 2006 Aelitis SAS, 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; either version 2 of the License.
 *
 * 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 ( see the LICENSE file ).
 *
 * 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
 *
 * AELITIS, SAS au capital de 46,603.30 euros,
 * 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France.
 */

package org.gudy.azureus2.ui.swt.views.configsections;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.*;
import org.gudy.azureus2.core3.config.COConfigurationManager;
import org.gudy.azureus2.core3.config.ParameterListener;
import org.gudy.azureus2.core3.internat.MessageText;
import org.gudy.azureus2.core3.logging.*;
import org.gudy.azureus2.core3.util.AEThread;
import org.gudy.azureus2.core3.util.Constants;
import org.gudy.azureus2.platform.PlatformManager;
import org.gudy.azureus2.platform.PlatformManagerFactory;
import org.gudy.azureus2.platform.PlatformManagerCapabilities;
import org.gudy.azureus2.plugins.platform.PlatformManagerException;
import org.gudy.azureus2.plugins.ui.config.ConfigSection;
import org.gudy.azureus2.ui.swt.ImageRepository;
import org.gudy.azureus2.ui.swt.Messages;
import org.gudy.azureus2.ui.swt.config.*;
import org.gudy.azureus2.ui.swt.plugins.UISWTConfigSection;

import java.applet.Applet;
import java.io.File;
import java.util.HashMap;

public class ConfigSectionInterface implements UISWTConfigSection {
  Label passwordMatch;

  private ParameterListener		decisions_parameter_listener;
  
  public String configSectionGetParentSection() {
    return ConfigSection.SECTION_ROOT;
  }

	public String configSectionGetName() {
		return ConfigSection.SECTION_INTERFACE;
	}

  public void configSectionSave() {
  }

  public void configSectionDelete() {
	  
	  if ( decisions_parameter_listener != null ){
		  
		  COConfigurationManager.removeParameterListener( "MessageBoxWindow.decisions", decisions_parameter_listener );
	  }
  }
  

  public Composite configSectionCreate(final Composite parent) {
    GridData gridData;
    GridLayout layout;
    Label label;

    Composite cDisplay = new Composite(parent, SWT.NULL);

    gridData = new GridData(GridData.VERTICAL_ALIGN_FILL | GridData.HORIZONTAL_ALIGN_FILL);
    cDisplay.setLayoutData(gridData);
    layout = new GridLayout();
    layout.numColumns = 1;
    cDisplay.setLayout(layout);

    new BooleanParameter(cDisplay, "Open Details", "ConfigView.label.opendetails");
    new BooleanParameter(cDisplay, "Open Bar", false, "ConfigView.label.openbar");

    if(!Constants.isOSX) {
    	
      BooleanParameter est = new BooleanParameter(cDisplay, "Enable System Tray", true, "ConfigView.section.interface.enabletray");

      BooleanParameter ctt = new BooleanParameter(cDisplay, "Close To Tray", true, "ConfigView.label.closetotray");
      BooleanParameter mtt = new BooleanParameter(cDisplay, "Minimize To Tray", false, "ConfigView.label.minimizetotray");
      
      est.setAdditionalActionPerformer(new ChangeSelectionActionPerformer( ctt.getControls()));
      est.setAdditionalActionPerformer(new ChangeSelectionActionPerformer( mtt.getControls()));

    }
    
    new BooleanParameter(cDisplay, "Send Version Info",true, "ConfigView.label.allowSendVersion");
    

    Composite cArea = new Composite(cDisplay, SWT.NULL);
    layout = new GridLayout();
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    layout.numColumns = 4;
    cArea.setLayout(layout);
    cArea.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    	
    BooleanParameter d_play_sound = new BooleanParameter(cArea, "Play Download Finished",false, "ConfigView.label.playdownloadfinished");

    // OS X counterpart for alerts (see below for what is disabled)
    if(Constants.isOSX) {
    		// download info 
    	
        gridData = new GridData();
        gridData.horizontalSpan = 3;
        gridData.widthHint = 0;
        gridData.heightHint = 0;
        Composite d_filler = new Composite(cArea, SWT.NONE);
        d_filler.setSize(0, 0);
        d_filler.setLayoutData(gridData);

        final BooleanParameter d_speechEnabledParameter = new BooleanParameter(cArea, "Play Download Finished Announcement", "ConfigView.label.playdownloadspeech");

        final StringParameter d_speechParameter = new StringParameter(cArea, "Play Download Finished Announcement Text");
        gridData = new GridData();
        gridData.horizontalSpan = 3;
        gridData.widthHint = 150;
        d_speechParameter.setLayoutData(gridData);
        ((Text)d_speechParameter.getControl()).setTextLimit(40);

        d_speechEnabledParameter.setAdditionalActionPerformer(new ChangeSelectionActionPerformer(d_speechParameter.getControls()));

        final Label d_speechInfo = new Label(cArea, SWT.NONE);
        gridData = new GridData();
        gridData.horizontalSpan = 4;
        gridData.horizontalIndent = 24;
        d_speechInfo.setLayoutData(gridData);

        Messages.setLanguageText(d_speechInfo, "ConfigView.label.playdownloadspeech.info");
    }
 

     //Option disabled on OS X, as impossible to make it work correctly
    if(!Constants.isOSX) {
    	Image imgOpenFolder = ImageRepository.getImage("openFolderButton");
	    
    		// download info
    	
	    gridData = new GridData();
	    
	    gridData.widthHint = 150;
	    
	    final StringParameter d_pathParameter = new StringParameter(cArea, "Play Download Finished File", "");
	    
	    if ( d_pathParameter.getValue().length() == 0 ){
	    	
	    	d_pathParameter.setValue("<default>");
	    }
	    
	    d_pathParameter.setLayoutData(gridData);

	    Button d_browse = new Button(cArea, SWT.PUSH);
	    
	    d_browse.setImage(imgOpenFolder);
	    
	    imgOpenFolder.setBackground(d_browse.getBackground());
	    
	    d_browse.setToolTipText(MessageText.getString("ConfigView.button.browse"));
	    
	    d_browse.addListener(SWT.Selection, new Listener() {
	      public void handleEvent(Event event) {
	        FileDialog dialog = new FileDialog(parent.getShell(), SWT.APPLICATION_MODAL);
	        dialog.setFilterExtensions(new String[] { "*.wav" });
	        dialog.setFilterNames(new String[] { "*.wav" }); 
	      
	        dialog.setText(MessageText.getString("ConfigView.section.interface.wavlocation"));
	      
	        final String path = dialog.open();
	      
	        if (path != null){
	        	
	        	d_pathParameter.setValue(path);
	        	
	        	new AEThread("SoundTest")
				{
	        		public void
					runSupport()
	        		{
	        			try{
	        				Applet.newAudioClip( new File( path ).toURL()).play();
	        			
	        				Thread.sleep(2500);
	        				
	        			}catch( Throwable e ){
	        				
	        			}
	        		}
	        	}.start();
	        }
	      }
	    });
	    
	    Label d_sound_info = new Label(cArea, SWT.WRAP);
	    Messages.setLanguageText(d_sound_info, "ConfigView.section.interface.wavlocation.info");
	    gridData = new GridData(GridData.FILL_HORIZONTAL);
	    gridData.widthHint = 100;
	    d_sound_info.setLayoutData(gridData);

	    d_play_sound.setAdditionalActionPerformer(new ChangeSelectionActionPerformer( d_pathParameter.getControls()));
	    d_play_sound.setAdditionalActionPerformer(new ChangeSelectionActionPerformer( new Control[]{d_browse,d_sound_info }));

	  
	  
	  
	  	// 
    }
    
    
    BooleanParameter f_play_sound = new BooleanParameter(cArea, "Play File Finished",false, "ConfigView.label.playfilefinished");

    // OS X counterpart for alerts (see below for what is disabled)
    
    if(Constants.isOSX) {

			// per-file info
		
		gridData = new GridData();
		gridData.horizontalSpan = 3;
		gridData.widthHint = 0;
		gridData.heightHint = 0;
		Composite f_filler = new Composite(cArea, SWT.NONE);
		f_filler.setSize(0, 0);
		f_filler.setLayoutData(gridData);
		
		final BooleanParameter f_speechEnabledParameter = new BooleanParameter(cArea, "Play File Finished Announcement", "ConfigView.label.playfilespeech");
		
		final StringParameter f_speechParameter = new StringParameter(cArea, "Play File Finished Announcement Text");
		gridData = new GridData();
		gridData.horizontalSpan = 3;
		gridData.widthHint = 150;
		f_speechParameter.setLayoutData(gridData);
		((Text)f_speechParameter.getControl()).setTextLimit(40);
		
		f_speechEnabledParameter.setAdditionalActionPerformer(new ChangeSelectionActionPerformer(f_speechParameter.getControls()));
		
		final Label speechInfo = new Label(cArea, SWT.NONE);
		gridData = new GridData();
		gridData.horizontalSpan = 4;
		gridData.horizontalIndent = 24;
		speechInfo.setLayoutData(gridData);
		
		Messages.setLanguageText(speechInfo, "ConfigView.label.playfilespeech.info");
	}
    
    //Option disabled on OS X, as impossible to make it work correctly
    if(!Constants.isOSX) {
    	Image imgOpenFolder = ImageRepository.getImage("openFolderButton");
 
	  	// file info
  	  
  	  
	  	gridData = new GridData();
	    
	  	gridData.widthHint = 150;
	    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -