📄 gemlayoutcontroller.java
字号:
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 + -