Changeset 908

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

[Bug 149] save user configuration when setup wizard is finished, display wizard when the user configuration is empty

Files:

Legend:

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

    r902 r908  
    3636import org.apache.commons.cli.Options; 
    3737import org.apache.commons.cli.ParseException; 
    38 import org.apache.commons.configuration.Configuration; 
    39 import org.apache.commons.configuration.ConfigurationException; 
    4038import org.apache.commons.configuration.HierarchicalConfiguration; 
    4139import org.apache.commons.lang.StringUtils; 
     
    4846import org.kolaka.freecast.config.ConfigurationLoader; 
    4947import org.kolaka.freecast.config.DefaultConfigurationLoader; 
     48import org.kolaka.freecast.config.UserConfiguration; 
    5049import org.kolaka.freecast.resource.ClassLoaderResourceLocator; 
    5150import org.kolaka.freecast.resource.CompositeResourceLocator; 
     
    7473        } 
    7574   
    76   public Configuration getUserConfiguration() { 
     75  public UserConfiguration getUserConfiguration() { 
    7776    return configurationLoader.getUserConfiguration(); 
    78   } 
    79    
    80   public void saveUserConfiguration() throws ConfigurationException { 
    81     configurationLoader.saveUserConfiguration(); 
    8277  } 
    8378 
  • trunk/source/org/kolaka/freecast/config/ConfigurationLoader.java

    r902 r908  
    4848        void setResourceLocator(ResourceLocator locator); 
    4949   
    50   Configuration getUserConfiguration(); 
    51    
    52   void saveUserConfiguration() throws ConfigurationException; 
     50  UserConfiguration getUserConfiguration(); 
    5351 
    5452} 
  • trunk/source/org/kolaka/freecast/config/DefaultConfigurationLoader.java

    r905 r908  
    5656        private URI commandLineURI; 
    5757 
    58   private File userFile = new File(new File(SystemUtils.USER_HOME, ".freecast"), "config.xml")
     58  private File userFile
    5959   
    6060        protected Properties commandLineProperties = new Properties(); 
     
    7878        public DefaultConfigurationLoader(String defaultsName) { 
    7979                this.defaultsName = defaultsName; 
     80    userFile = new File(new File(SystemUtils.USER_HOME, ".freecast"), "config-" + defaultsName + ".xml"); 
    8081        } 
    8182 
     
    113114  protected XMLConfiguration loadUserConfiguration() 
    114115  throws ConfigurationException { 
    115     LogFactory.getLog(getClass()).debug( 
    116         "load the user configuration from " + userFile); 
    117116    XMLConfiguration configuration = new XMLConfiguration(userFile); 
    118117     
    119     if (userFile.exists()) 
     118    if (userFile.exists()) { 
     119      LogFactory.getLog(getClass()).debug( 
     120          "load the user configuration from " + userFile); 
    120121      try { 
    121122        configuration.load(); 
     
    125126            "can't load user configuration from " + userFile, e); 
    126127      }  
    127     else { 
     128    } else { 
     129      LogFactory.getLog(getClass()).debug( 
     130          "no user configuration in " + userFile); 
    128131      configuration.setRootElementName("freecast"); 
    129132    } 
     
    132135  } 
    133136   
    134   public Configuration getUserConfiguration() { 
    135     return userConfiguration; 
    136   } 
    137    
    138   public void saveUserConfiguration() throws ConfigurationException { 
    139     userFile.getParentFile().mkdirs(); 
    140     userConfiguration.save(); 
     137  public UserConfiguration getUserConfiguration() { 
     138    return new UserConfiguration() { 
     139      public Configuration getConfiguration() { 
     140        return userConfiguration; 
     141      } 
     142      public void save() throws ConfigurationException { 
     143        LogFactory.getLog(getClass()).debug( 
     144            "save user configuration in " + userFile); 
     145         
     146        userFile.getParentFile().mkdirs(); 
     147        userConfiguration.save(); 
     148      } 
     149    }; 
    141150  } 
    142151 
     
    191200                } 
    192201                configuration.addConfiguration(loadCommandLineConfiguration()); 
     202     
    193203    userConfiguration = loadUserConfiguration(); 
    194204    configuration.addConfiguration(userConfiguration); 
  • trunk/source/org/kolaka/freecast/manager/gui/Main.java

    r901 r908  
    120120                resources.setResourceLocator(getResourceLocator()); 
    121121     
    122                 frame = new MainFrame(resources, tracker, node, listenPage); 
     122                frame = new MainFrame(resources, tracker, node, listenPage, getUserConfiguration()); 
    123123                frame.setQuitAction(createQuitAction(resources)); 
    124124                frame.init(); 
  • trunk/source/org/kolaka/freecast/manager/gui/MainFrame.java

    r840 r908  
    2828import java.awt.GridBagLayout; 
    2929import java.awt.Insets; 
     30import java.awt.event.ActionEvent; 
     31import java.awt.event.WindowAdapter; 
     32import java.awt.event.WindowEvent; 
    3033import java.net.URL; 
    3134import java.util.Arrays; 
     
    4346import org.apache.commons.lang.StringUtils; 
    4447import org.kolaka.freecast.auditor.AuditorFactory; 
     48import org.kolaka.freecast.config.UserConfiguration; 
    4549import org.kolaka.freecast.lang.mutable.ObservableValue; 
    4650import org.kolaka.freecast.node.ConfigurableNode; 
     
    5054import org.kolaka.freecast.peer.PeerReference; 
    5155import org.kolaka.freecast.setup.SetupAction; 
     56import org.kolaka.freecast.swing.ActionEventFactory; 
    5257import org.kolaka.freecast.swing.AsyncAction; 
    5358import org.kolaka.freecast.swing.BaseFrame; 
     
    8085 
    8186        public MainFrame(Resources resources, TrackerService tracker, ConfigurableNode node, 
    82                         URL listenPage) throws ResourcesException { 
     87                        URL listenPage, UserConfiguration configuration) throws ResourcesException { 
    8388                super(resources); 
    8489 
     
    9095                emailHomepageAction = new AsyncAction(new EmailHomepageAction(resources, 
    9196                                listenPage)); 
    92                 setupAction = new SetupAction(((ConfigurableResources) resources).subset("setup"), this, node); 
     97                setupAction = new AsyncAction(new SetupAction(((ConfigurableResources) resources).subset("setup"), this, node, configuration)); 
     98 
     99    if (configuration.getConfiguration().isEmpty()) { 
     100      addWindowListener(new WindowAdapter() { 
     101        public void windowOpened(WindowEvent e) { 
     102          ActionEvent event = new ActionEventFactory(MainFrame.this).createActionEvent(); 
     103          setupAction.actionPerformed(event); 
     104        } 
     105      }); 
     106    } 
    93107        } 
    94108 
  • trunk/source/org/kolaka/freecast/setup/Main.java

    r902 r908  
    2626import org.apache.commons.configuration.ConfigurationException; 
    2727import org.apache.commons.configuration.HierarchicalConfiguration; 
    28 import org.apache.commons.configuration.XMLConfiguration; 
    2928import org.apache.commons.logging.LogFactory; 
    3029import org.kolaka.freecast.config.Configurations; 
     30import org.kolaka.freecast.config.UserConfiguration; 
    3131import org.kolaka.freecast.swing.ConfigurableResources; 
    3232import org.kolaka.freecast.swing.Resources; 
     
    6262      public void wizardClosed(WizardEvent event) { 
    6363        // System.out.println(model.getConfiguration()); 
    64         new ReceiverConfigurationLoader().save(model.getConfiguration(), getUserConfiguration()); 
     64        UserConfiguration userConfiguration = getUserConfiguration(); 
     65        new ReceiverConfigurationLoader().save(model.getConfiguration(), userConfiguration.getConfiguration()); 
    6566         
    6667        try { 
    67           saveUserConfiguration(); 
     68          userConfiguration.save(); 
    6869        } catch (ConfigurationException e) { 
    6970          LogFactory.getLog(Main.this.getClass()).error("can't save configuration", e); 
  • trunk/source/org/kolaka/freecast/setup/SetupAction.java

    r883 r908  
    2828import javax.swing.JFrame; 
    2929 
     30import org.apache.commons.configuration.ConfigurationException; 
    3031import org.apache.commons.logging.LogFactory; 
     32import org.kolaka.freecast.config.UserConfiguration; 
    3133import org.kolaka.freecast.node.ConfigurableNode; 
    3234import org.kolaka.freecast.swing.BaseAction; 
     
    3436import org.kolaka.freecast.swing.Resources; 
    3537import org.kolaka.freecast.swing.ResourcesException; 
     38import org.kolaka.freecast.transport.receiver.ReceiverConfigurationLoader; 
    3639import org.kolaka.freecast.transport.receiver.ReceiverConfigurations; 
    3740import org.kolaka.freecast.transport.receiver.SourceReceiverConfiguration; 
     
    4952        private final Resources resources; 
    5053        private final ConfigurableNode node; 
     54  private final UserConfiguration userConfiguration; 
    5155         
    52         public SetupAction(Resources resources, JFrame parent, ConfigurableNode node) throws ResourcesException { 
     56        public SetupAction(Resources resources, JFrame parent, ConfigurableNode node, UserConfiguration configuration) throws ResourcesException { 
    5357                super("Configure FreeCast"); 
    5458                this.parent = parent; 
    5559                this.resources = resources; 
    5660                this.node = node; 
     61    this.userConfiguration = configuration; 
    5762                loadIcons(resources, "main"); 
    5863        } 
     
    7580        LogFactory.getLog(getClass()).debug("configuration returns by setup dialog: " + configuration); 
    7681 
     82        new ReceiverConfigurationLoader().save(model.getConfiguration(), userConfiguration.getConfiguration()); 
     83         
     84        try { 
     85          userConfiguration.save(); 
     86        } catch (ConfigurationException e) { 
     87          LogFactory.getLog(getClass()).error("can't save configuration", e); 
     88        } 
     89 
    7790        if (configuration.equals(node.getReceiverControler().getReceiverConfiguration())) { 
    7891          LogFactory.getLog(getClass()).debug("configuration not changed"); 
  • trunk/source/org/kolaka/freecast/transport/receiver/ReceiverConfigurationLoader.java

    r902 r908  
    7474 
    7575      InetSocketAddress address = shoutServerReceiverConfiguration.getListenAddress(); 
    76       String addressPrefix = PREFIX + "." + PROPERTY_LISTENADDRESS + "."; 
     76      String addressPrefix = PREFIX + PROPERTY_LISTENADDRESS + "."; 
    7777       
    7878      receiverConfiguration.setProperty(addressPrefix + InetSocketAddressConfigurator.PROPERTY_HOST, address.getHostName());