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

📄 gemlayoutcontroller.java

📁 用JGraph编的软件
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
        configs[1].put(KEY_INIT_TEMPERATURE      ,"250.0"   );
        configs[1].put(KEY_MIN_TEMPERATURE       ,  "0.5"   );
        configs[1].put(KEY_MAX_TEMPERATURE       ,"256.0"   );
        configs[1].put(KEY_PREF_EDGE_LENGTH      ,"100.0"   );
        configs[1].put(KEY_GRAVITATION           ,  "0.0625");
        configs[1].put(KEY_RANDOM_IMPULSE_RANGE  , "32.0"   );
        configs[1].put(KEY_COMPUTE_PERMUTATION   , "true"   );
        configs[1].put(KEY_END_CONDITION_AVERAGE , "false");
        configs[1].put(KEY_AVOID_OVERLAPPING     , "false");
        configs[1].put(KEY_OVERLAPPING_DETECTION_WIDTH,"40.0");
        configs[1].put(KEY_OVERLAPPING_PREF_DISTANCE,  "40.0");
        configs[1].put(KEY_ALPHA_OSC             ,String.valueOf(Math.toRadians(90.0)));
        configs[1].put(KEY_ALPHA_ROT             ,String.valueOf(Math.toRadians(60.0)));
        configs[1].put(KEY_SIGMA_OSC             ,String.valueOf(7.0/8.0));
        configs[1].put(KEY_SIGMA_ROT             ,String.valueOf(1.0/5.0));
        configs[1].put(KEY_OPTIMIZE_ALGORITHM_ENABLED,"false");
        configs[1].put(KEY_OPTIMIZE_ALGORITHM_CONFIG,optimizeConfig.clone());
        
        configs[1].put(KEY_LAYOUT_UPDATE_INIT_TEMPERATURE      ,"100.0");
        configs[1].put(KEY_LAYOUT_UPDATE_MIN_TEMPERATURE       ,"2.0");
        configs[1].put(KEY_LAYOUT_UPDATE_MAX_TEMPERATURE       ,"256.0");
        configs[1].put(KEY_LAYOUT_UPDATE_PREF_EDGE_LENGTH      ,"100.0");
        configs[1].put(KEY_LAYOUT_UPDATE_GRAVITATION           ,"0.0625");
        configs[1].put(KEY_LAYOUT_UPDATE_RANDOM_IMPULSE_RANGE  ,"32.0");
        configs[1].put(KEY_LAYOUT_UPDATE_COMPUTE_PERMUTATION   ,"true");
        configs[1].put(KEY_LAYOUT_UPDATE_END_CONDITION_AVERAGE ,"false");
        configs[1].put(KEY_LAYOUT_UPDATE_AVOID_OVERLAPPING     ,"false");
        configs[1].put(KEY_LAYOUT_UPDATE_OVERLAPPING_DETECTION_WIDTH,"40.0");
        configs[1].put(KEY_LAYOUT_UPDATE_OVERLAPPING_PREF_DISTANCE,  "40.0");
        configs[1].put(KEY_LAYOUT_UPDATE_ALPHA_OSC             ,String.valueOf(Math.toRadians(90.0)));
        configs[1].put(KEY_LAYOUT_UPDATE_ALPHA_ROT             ,String.valueOf(Math.toRadians(60.0)));
        configs[1].put(KEY_LAYOUT_UPDATE_SIGMA_OSC             ,String.valueOf(7.0/8.0));
        configs[1].put(KEY_LAYOUT_UPDATE_SIGMA_ROT             ,String.valueOf(1.0/5.0));
        configs[1].put(KEY_LAYOUT_UPDATE_ENABLED               ,"false");
        configs[1].put(KEY_LAYOUT_UPDATE_DEPTH                 ,"1");
        configs[1].put(KEY_LAYOUT_UPDATE_METHOD                ,KEY_LAYOUT_UPDATE_METHOD_PERIMETERS);
        configs[1].put(KEY_LAYOUT_UPDATE_OPTIMIZE_ALGORITHM_ENABLED,"false");
        configs[1].put(KEY_LAYOUT_UPDATE_OPTIMIZE_ALGORITHM_CONFIG,lu_optimizeConfig.clone());
        configs[1].put(KEY_LAYOUT_UPDATE_CLUSTERING_ENABLED              ,"true");
        configs[1].put(KEY_LAYOUT_UPDATE_CLUSTERING_INIT_TEMPERATURE     ,"20.0");
        configs[1].put(KEY_LAYOUT_UPDATE_CLUSTERING_FORCE_SCALING_FACTOR ,"0.1");
        configs[1].put(KEY_LAYOUT_UPDATE_CLUSTERING_FACTOR               ,"12.0");
        configs[1].put(KEY_LAYOUT_UPDATE_METHOD_PERIMETER_INIT_SIZE      ,"150.0");
        configs[1].put(KEY_LAYOUT_UPDATE_METHOD_PERIMETER_SIZE_INC       ,"30.0");
        
        
       
        configuration = (Properties) configs[0].clone();
        
        dialog = new GEMLayoutConfigurationDialog(new JFrame(),configs,optimizeController,lu_optimizeController);
        
    }

/******************************************************************************/  
	/**
	 * @see java.lang.Object#toString()
	 */
	public String toString() {
        return KEY_TITLE;
	}

/******************************************************************************/    
	/**
	 * @see de.fzi.echidna.layout.LayoutController#isConfigurable()
	 */
	public boolean isConfigurable() {
		return true;
	}

/******************************************************************************/    
	/**
	 * @see de.fzi.echidna.layout.LayoutController#configure()
	 */
	public void configure() {
        pushConfig();
        dialog.setVisible(true);
        if( !dialog.isCanceled() )
            pullConfig();
	}

/******************************************************************************/    
	/**
	 * @see de.fzi.echidna.layout.LayoutController#getConfiguration()
	 */
	public Properties getConfiguration() {
        return configuration;
	}

/******************************************************************************/    
	/**
	 * @see de.fzi.echidna.layout.LayoutController#getLayoutAlgorithm()
	 */
	public LayoutAlgorithm getLayoutAlgorithm() {
        return new GEMLayoutAlgorithm((AnnealingLayoutAlgorithm)optimizeController.getLayoutAlgorithm());
	}

/******************************************************************************/    

    protected void pushConfig(){
        double initTemperature    = Double.parseDouble((String)configuration.get(KEY_INIT_TEMPERATURE));
        double minTemperature     = Double.parseDouble((String)configuration.get(KEY_MIN_TEMPERATURE));
        double maxTemperature     = Double.parseDouble((String)configuration.get(KEY_MAX_TEMPERATURE));
        double prefEdgeLength     = Double.parseDouble((String)configuration.get(KEY_PREF_EDGE_LENGTH));
        double gravitation        = Double.parseDouble((String)configuration.get(KEY_GRAVITATION));
        double randomImpulseRange = Double.parseDouble((String)configuration.get(KEY_RANDOM_IMPULSE_RANGE));
        double overlapDetectWidth = Double.parseDouble((String)configuration.get(KEY_OVERLAPPING_DETECTION_WIDTH));
        double overlapPrefDist    = Double.parseDouble((String)configuration.get(KEY_OVERLAPPING_PREF_DISTANCE));
        double alphaOsc           = Double.parseDouble((String)configuration.get(KEY_ALPHA_OSC));
        double alphaRot           = Double.parseDouble((String)configuration.get(KEY_ALPHA_ROT));
        double sigmaOsc           = Double.parseDouble((String)configuration.get(KEY_SIGMA_OSC));
        double sigmaRot           = Double.parseDouble((String)configuration.get(KEY_SIGMA_ROT));        
        
        boolean computePermut        = isTrue((String)configuration.get(KEY_COMPUTE_PERMUTATION));
        boolean endPerAverage        = isTrue((String)configuration.get(KEY_END_CONDITION_AVERAGE));
        boolean avoidOverlapping     = isTrue((String)configuration.get(KEY_AVOID_OVERLAPPING));
        boolean useOptimizeAlgorithm = isTrue((String)configuration.get(KEY_OPTIMIZE_ALGORITHM_ENABLED));
        
        Properties optimizationConfig = (Properties) configuration.get(KEY_OPTIMIZE_ALGORITHM_CONFIG);
                
        double lu_initTemperature    = Double.parseDouble((String)configuration.get(KEY_LAYOUT_UPDATE_INIT_TEMPERATURE));
        double lu_minTemperature     = Double.parseDouble((String)configuration.get(KEY_LAYOUT_UPDATE_MIN_TEMPERATURE));
        double lu_maxTemperature     = Double.parseDouble((String)configuration.get(KEY_LAYOUT_UPDATE_MAX_TEMPERATURE));
        double lu_prefEdgeLength     = Double.parseDouble((String)configuration.get(KEY_LAYOUT_UPDATE_PREF_EDGE_LENGTH));
        double lu_gravitation        = Double.parseDouble((String)configuration.get(KEY_LAYOUT_UPDATE_GRAVITATION));
        double lu_randomImpulseRange = Double.parseDouble((String)configuration.get(KEY_LAYOUT_UPDATE_RANDOM_IMPULSE_RANGE));
        double lu_overlapDetectWidth = Double.parseDouble((String)configuration.get(KEY_LAYOUT_UPDATE_OVERLAPPING_DETECTION_WIDTH));
        double lu_overlapPrefDist    = Double.parseDouble((String)configuration.get(KEY_LAYOUT_UPDATE_OVERLAPPING_PREF_DISTANCE));
        double lu_alphaOsc           = Double.parseDouble((String)configuration.get(KEY_LAYOUT_UPDATE_ALPHA_OSC));
        double lu_alphaRot           = Double.parseDouble((String)configuration.get(KEY_LAYOUT_UPDATE_ALPHA_ROT));
        double lu_sigmaOsc           = Double.parseDouble((String)configuration.get(KEY_LAYOUT_UPDATE_SIGMA_OSC));
        double lu_sigmaRot           = Double.parseDouble((String)configuration.get(KEY_LAYOUT_UPDATE_SIGMA_ROT));
        double lu_cluster_initTemp   = Double.parseDouble((String)configuration.get(KEY_LAYOUT_UPDATE_CLUSTERING_INIT_TEMPERATURE));
        double lu_cluster_forceScale = Double.parseDouble((String)configuration.get(KEY_LAYOUT_UPDATE_CLUSTERING_FORCE_SCALING_FACTOR));
        double lu_cluster_factor     = Double.parseDouble((String)configuration.get(KEY_LAYOUT_UPDATE_CLUSTERING_FACTOR));        
        
        int    lu_depth              = Integer.parseInt((String)configuration.get(KEY_LAYOUT_UPDATE_DEPTH));
        double lu_perimeter_initSize = Double.parseDouble((String)configuration.get(KEY_LAYOUT_UPDATE_METHOD_PERIMETER_INIT_SIZE));
        double lu_perimeter_sizeInc  = Double.parseDouble((String)configuration.get(KEY_LAYOUT_UPDATE_METHOD_PERIMETER_SIZE_INC));
        
        boolean lu_enabled              = isTrue((String)configuration.get(KEY_LAYOUT_UPDATE_ENABLED));
        boolean lu_cluster_enabled      = isTrue((String)configuration.get(KEY_LAYOUT_UPDATE_CLUSTERING_ENABLED));
        
        boolean lu_computePermut        = isTrue((String)configuration.get(KEY_LAYOUT_UPDATE_COMPUTE_PERMUTATION));
        boolean lu_endPerAverage        = isTrue((String)configuration.get(KEY_LAYOUT_UPDATE_END_CONDITION_AVERAGE));
        boolean lu_avoidOverlapping     = isTrue((String)configuration.get(KEY_LAYOUT_UPDATE_AVOID_OVERLAPPING));
        boolean lu_useOptimizeAlgorithm = isTrue((String)configuration.get(KEY_LAYOUT_UPDATE_OPTIMIZE_ALGORITHM_ENABLED));
        
        Properties lu_optimizationConfig = (Properties) configuration.get(KEY_LAYOUT_UPDATE_OPTIMIZE_ALGORITHM_CONFIG);
        
        String lu_method = (String)configuration.get(KEY_LAYOUT_UPDATE_METHOD);
        
        dialog.setInitTemperature(initTemperature);
        dialog.setMinTemperature(minTemperature);
        dialog.setMaxTemperature(maxTemperature);
        dialog.setPreferredEdgeLength(prefEdgeLength);
        dialog.setGravitation(gravitation);
        dialog.setRandomImpulseRange(randomImpulseRange);
        dialog.setOverlapDetectionWidth(overlapDetectWidth);
        dialog.setOverlapPreferredDistance(overlapPrefDist);
        dialog.setAlphaOsc(alphaOsc);
        dialog.setAlphaRot(alphaRot);

⌨️ 快捷键说明

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