Skip to Content.
Sympa Menu

notify-dpml - svn commit: r2498 - in development/main: depot/station/src/main/net/dpml/depot/station transit/core/handler/src/main/net/dpml/transit/prefs

notify-dpml AT lists.ibiblio.org

Subject: DPML Notify

List archive

Chronological Thread  
  • From: mcconnell AT dpml.net
  • To: notify-dpml AT lists.ibiblio.org
  • Subject: svn commit: r2498 - in development/main: depot/station/src/main/net/dpml/depot/station transit/core/handler/src/main/net/dpml/transit/prefs
  • Date: Tue, 10 May 2005 16:43:07 +0000

Author: mcconnell AT dpml.net
Date: Tue May 10 16:43:07 2005
New Revision: 2498

Modified:

development/main/depot/station/src/main/net/dpml/depot/station/DepotContentHandlerRegistry.java

development/main/depot/station/src/main/net/dpml/depot/station/DepotContentHandlerRegistryControlPanel.java

development/main/transit/core/handler/src/main/net/dpml/transit/prefs/ContentHandlerControllerPanel.java
Log:
housekeeping

Modified:
development/main/depot/station/src/main/net/dpml/depot/station/DepotContentHandlerRegistry.java
==============================================================================
---
development/main/depot/station/src/main/net/dpml/depot/station/DepotContentHandlerRegistry.java
(original)
+++
development/main/depot/station/src/main/net/dpml/depot/station/DepotContentHandlerRegistry.java
Tue May 10 16:43:07 2005
@@ -56,10 +56,19 @@

static
{
- Preferences prefs = Preferences.userNodeForPackage(
ContentHandlerRegistry.class );
- Preferences p = prefs.node( "part" );
- p.put( "title", "Part Content Handler" );
- p.put( "uri",
"artifact:plugin:dpml/tools/dpml-composition-unit#SNAPSHOT" );
+ // register the FT part handler
+ {
+ Preferences prefs = Preferences.userNodeForPackage(
ContentHandlerRegistry.class );
+ Preferences p = prefs.node( "part" );
+ p.put( "title", "Part Content Handler" );
+ p.put( "uri",
"artifact:plugin:dpml/tools/dpml-composition-unit#SNAPSHOT" );
+ }
+
+ // register the dpml-depot-station control panel
+ {
+ Preferences prefs = Preferences.userNodeForPackage(
DepotContentHandlerRegistry.class );
+ prefs.put( "control-panel-plugin-uri",
"artifact:plugin:dpml/depot/dpml-depot-station-control-panel#SNAPSHOT" );
+ }
}

//
------------------------------------------------------------------------

Modified:
development/main/depot/station/src/main/net/dpml/depot/station/DepotContentHandlerRegistryControlPanel.java
==============================================================================
---
development/main/depot/station/src/main/net/dpml/depot/station/DepotContentHandlerRegistryControlPanel.java
(original)
+++
development/main/depot/station/src/main/net/dpml/depot/station/DepotContentHandlerRegistryControlPanel.java
Tue May 10 16:43:07 2005
@@ -17,6 +17,7 @@

package net.dpml.depot.station;

+import java.awt.Dialog;
import javax.swing.JDialog;

/**
@@ -25,5 +26,8 @@
*/
public class DepotContentHandlerRegistryControlPanel extends JDialog
{
-
+ public DepotContentHandlerRegistryControlPanel( Dialog parent )
+ {
+ super( parent );
+ }
}

Modified:
development/main/transit/core/handler/src/main/net/dpml/transit/prefs/ContentHandlerControllerPanel.java
==============================================================================
---
development/main/transit/core/handler/src/main/net/dpml/transit/prefs/ContentHandlerControllerPanel.java
(original)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/prefs/ContentHandlerControllerPanel.java
Tue May 10 16:43:07 2005
@@ -34,6 +34,7 @@
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
+import java.lang.reflect.Constructor;

import java.io.File;
import java.io.IOException;
@@ -67,6 +68,7 @@
import javax.swing.JFileChooser;

import net.dpml.transit.Transit;
+import net.dpml.transit.TransitException;
import net.dpml.transit.util.ExceptionHelper;
import net.dpml.transit.content.ContentHandlerRegistry;
import net.dpml.transit.repository.Plugin;
@@ -170,7 +172,7 @@
);
settingsPanel.setBackground( Color.white );
settingsPanel.setLayout( new BorderLayout() );
- m_settings = new JButton( new SettingsAction( "Controller
Settings" ) );
+ m_settings = new JButton( new SettingsAction( "Controller
Settings", m_parent ) );
settingsPanel.add( m_settings, BorderLayout.EAST );
panel.add( settingsPanel );
}
@@ -273,7 +275,7 @@
{
private Dialog m_dialog;

- SettingsAction( String name )
+ SettingsAction( String name, Dialog parent )
{
super( name );
String controllerPath = getControllerPathFromPreferences();
@@ -288,26 +290,18 @@
URI uri = new URI( controllerPath );
String classname = getControllerClassname( uri );
String controlClassname = classname + "ControlPanel";
- Class c = getControllerClass( uri );
- Preferences system = Preferences.systemNodeForPackage( c
);
- Preferences user = Preferences.userNodeForPackage( c );
- String cpPath =
- user.get( "control-panel-plugin-uri",
- system.get( "control-panel-plugin-uri", null ) );
- if( null != cpPath )
- {
- URL url = new URL( uri.toString() );
- m_dialog = (Dialog) url.getContent();
- setEnabled( true );
- }
- else
- {
- setEnabled( false );
- }
-
+ ClassLoader classloader = getControllerClassLoader( uri
);
+ m_dialog = createControlPanel( classloader,
controlClassname, parent );
+ setEnabled( true );
+ }
+ catch( ClassNotFoundException e )
+ {
+ setEnabled( false );
}
- catch( Exception e )
+ catch( Throwable e )
{
+ System.err.println( e.toString() );
+ e.printStackTrace();
setEnabled( false );
}
}
@@ -315,7 +309,10 @@

public void actionPerformed( ActionEvent event )
{
-
+ if( m_dialog != null )
+ {
+ m_dialog.setVisible( true );
+ }
}

private String getControllerClassname( URI uri ) throws Exception
@@ -325,10 +322,30 @@
return plugin.getClassname();
}

- private Class getControllerClass( URI uri ) throws Exception
+ private ClassLoader getControllerClassLoader( URI uri ) throws
Exception
{
URL url = new URL( uri.toString() );
- return (Class) url.getContent( new Class[]{ Class.class } );
+ return (ClassLoader) url.getContent( new Class[]{
ClassLoader.class } );
+ }
+
+ private Dialog createControlPanel( ClassLoader classloader, String
classname, Dialog parent ) throws TransitException
+ {
+ try
+ {
+ Class cls = classloader.loadClass( classname );
+ Class[] params = new Class[]{ Dialog.class};
+ Object[] args = new Object[]{ parent };
+ Constructor cons = cls.getConstructor( params );
+ return (Dialog) cons.newInstance( args );
+ }
+ catch( Throwable e )
+ {
+ String error =
+ "Unable to establish a control panel using the class ["
+ + classname
+ + "].";
+ throw new TransitException( error, e );
+ }
}
}




  • svn commit: r2498 - in development/main: depot/station/src/main/net/dpml/depot/station transit/core/handler/src/main/net/dpml/transit/prefs, mcconnell, 05/10/2005

Archive powered by MHonArc 2.6.24.

Top of Page