*/
protected void install( DockController controller ){
Controller settings = new Controller();
settings.controller = controller;
ColorManager colors = controller.getColors();
CControl control = controller.getProperties().get( CControl.CCONTROL );
try{
colors.lockUpdate();
ExtensionName<CColorBridgeExtension> name = new ExtensionName<CColorBridgeExtension>(
CColorBridgeExtension.EXTENSION_NAME, CColorBridgeExtension.class, CColorBridgeExtension.PARAMETER_NAME, this );
List<CColorBridgeExtension> extensions = controller.getExtensions().load( name );
for( Map.Entry<Path, ColorBridgeFactory> entry : colorBridgeFactories.entrySet() ){
ColorBridge bridge = entry.getValue().create( colors );
Path key = entry.getKey();
List<CColorBridgeExtension> filtered = new ArrayList<CColorBridgeExtension>();
for( CColorBridgeExtension extension : extensions ){
if( key.equals( extension.getKey() )){
filtered.add( extension );
}
}
if( !filtered.isEmpty() ){
CColorBridge[] extending = new CColorBridge[ filtered.size() ];
for( int i = 0; i < extending.length; i++ ){
extending[i] = filtered.get( i ).create( control, colors );
}
bridge = new ExtendedColorBridge( bridge, extending );
}
colors.publish(
Priority.DEFAULT,
entry.getKey(),
bridge );
settings.colors.put( entry.getKey(), bridge );
}
}
finally{
colors.unlockUpdate();
}
FontManager fonts = controller.getFonts();
try{
fonts.lockUpdate();