Changeset 909

Show
Ignore:
Timestamp:
10/17/06 22:21:33 (2 years ago)
Author:
alban
Message:

[Bug 147] fix the configuration reloading in the setup wizard

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/source/org/kolaka/freecast/config/DefaultConfigurationLoader.java

    r908 r909  
    137137  public UserConfiguration getUserConfiguration() { 
    138138    return new UserConfiguration() { 
    139       public Configuration getConfiguration() { 
     139      public HierarchicalConfiguration getConfiguration() { 
    140140        return userConfiguration; 
    141141      } 
  • trunk/source/org/kolaka/freecast/config/UserConfiguration.java

    r908 r909  
    2424package org.kolaka.freecast.config; 
    2525 
    26 import org.apache.commons.configuration.Configuration; 
    2726import org.apache.commons.configuration.ConfigurationException; 
     27import org.apache.commons.configuration.HierarchicalConfiguration; 
    2828 
    2929public interface UserConfiguration { 
    3030 
    31   Configuration getConfiguration(); 
     31  HierarchicalConfiguration getConfiguration(); 
    3232   
    3333  void save() throws ConfigurationException; 
  • trunk/source/org/kolaka/freecast/setup/Main.java

    r908 r909  
    2525 
    2626import org.apache.commons.configuration.ConfigurationException; 
     27import org.apache.commons.configuration.DataConfiguration; 
    2728import org.apache.commons.configuration.HierarchicalConfiguration; 
    2829import org.apache.commons.logging.LogFactory; 
     
    3233import org.kolaka.freecast.swing.Resources; 
    3334import org.kolaka.freecast.swing.SwingApplication; 
     35import org.kolaka.freecast.transport.receiver.ReceiverConfiguration; 
    3436import org.kolaka.freecast.transport.receiver.ReceiverConfigurationLoader; 
     37import org.kolaka.freecast.transport.receiver.SourceReceiverConfiguration; 
    3538import org.kolaka.freecast.transport.receiver.TestReceiverConfiguration; 
    3639import org.pietschy.wizard.Wizard; 
     
    4043public class Main extends SwingApplication { 
    4144 
     45  private SourceReceiverConfiguration receiverConfiguration; 
     46  private final ReceiverConfigurationLoader receiverConfigurationLoader = new ReceiverConfigurationLoader(); 
     47 
    4248  public Main() { 
    4349    super("setup"); 
     
    4652  protected void postInit(HierarchicalConfiguration configuration) throws Exception { 
    4753    super.postInit(configuration); 
     54    receiverConfiguration = loadReceiverConfiguration(configuration); 
     55 
    4856    Resources resources = new ConfigurableResources(Configurations.subset(configuration, "gui.setup")); 
     57  } 
     58 
     59  private SourceReceiverConfiguration loadReceiverConfiguration(HierarchicalConfiguration configuration) throws ConfigurationException { 
     60    HierarchicalConfiguration receiverConfiguration = Configurations.subset(configuration, "node.receiver"); 
     61    TestReceiverConfiguration defaultBean = new TestReceiverConfiguration(); 
     62     
     63    if (receiverConfiguration.isEmpty()) { 
     64      return defaultBean; 
     65    }  
     66     
     67    ReceiverConfiguration receiverConfigurationBean = receiverConfigurationLoader.load(new DataConfiguration(receiverConfiguration)); 
     68    if (!(receiverConfigurationBean instanceof SourceReceiverConfiguration)) { 
     69      LogFactory.getLog(getClass()).warn("configured receiver isn't supported : " + receiverConfigurationBean); 
     70      return defaultBean; 
     71    } 
     72     
     73    return (SourceReceiverConfiguration) receiverConfigurationBean; 
    4974  } 
    5075 
    5176  protected void run() throws Exception { 
    5277    final ReceiverWizardModel model = new ReceiverWizardModel(); 
    53     model.setReceiverConfiguration(new TestReceiverConfiguration()); 
     78    model.setReceiverConfiguration(receiverConfiguration); 
    5479 
    5580    Wizard wizard = new Wizard(model); 
     
    6388        // System.out.println(model.getConfiguration()); 
    6489        UserConfiguration userConfiguration = getUserConfiguration(); 
    65         new ReceiverConfigurationLoader().save(model.getConfiguration(), userConfiguration.getConfiguration()); 
     90        receiverConfigurationLoader.save(model.getConfiguration(), userConfiguration.getConfiguration()); 
    6691         
    6792        try { 
  • trunk/source/org/kolaka/freecast/setup/ReceiverTypeStep.java

    r883 r909  
    9393    } 
    9494    button.setSelected(true); 
     95    button.requestFocus(); 
    9596  } 
    9697   
  • trunk/source/org/kolaka/freecast/setup/ReceiverWizardModel.java

    r892 r909  
    114114     
    115115    Class configurationClass = (Class) CONFIGURATIONS.get(type); 
    116     try { 
    117       this.configuration = (SourceReceiverConfiguration) configurationClass.newInstance(); 
    118     } catch (Exception e) { 
    119       throw new InvalidStateException("Can't create configuration", e); 
    120     } 
     116     
     117    if (!configurationClass.isInstance(configuration)) 
     118      try { 
     119        this.configuration = (SourceReceiverConfiguration) configurationClass.newInstance(); 
     120      } catch (Exception e) { 
     121        throw new InvalidStateException("Can't create configuration", e); 
     122      } 
    121123 
    122124    LogFactory.getLog(getClass()).debug("change configuration for " + configuration); 
  • trunk/source/org/kolaka/freecast/transport/receiver/ReceiverConfigurationLoader.java

    r908 r909  
    3131import org.apache.commons.configuration.ConfigurationException; 
    3232import org.apache.commons.configuration.DataConfiguration; 
     33import org.apache.commons.configuration.HierarchicalConfiguration; 
    3334import org.apache.commons.logging.LogFactory; 
    3435import org.kolaka.freecast.config.Configurations; 
     
    6061   * TODO subset(...).setProperty doesn't work for HierarchicalConfiguration 
    6162   */ 
    62   public void save(ReceiverConfiguration configuration, Configuration receiverConfiguration) { 
     63  public void save(ReceiverConfiguration configuration, HierarchicalConfiguration receiverConfiguration) { 
     64    receiverConfiguration.clearTree(PREFIX); 
     65     
    6366    if (configuration instanceof ShoutClientReceiverConfiguration) { 
    6467      receiverConfiguration .setProperty(PREFIX + PROPERTY_CLASS, CLASS_SHOUTCLIENT);