View Javadoc

1   package com.melloware.jukes.gui.view.preferences;
2   
3   import java.beans.BeanInfo;
4   
5   import javax.swing.JPanel;
6   
7   import org.apache.commons.logging.Log;
8   import org.apache.commons.logging.LogFactory;
9   
10  import com.l2fprod.common.model.DefaultBeanInfoResolver;
11  import com.l2fprod.common.propertysheet.PropertySheet;
12  import com.l2fprod.common.propertysheet.PropertySheetPanel;
13  import com.l2fprod.common.swing.LookAndFeelTweaks;
14  import com.melloware.jukes.gui.tool.Settings;
15  
16  /**
17   * A <code>PropertySheet</code> for editing all the application settings.
18   * <p>
19   * Copyright (c) 1999-2007 Melloware, Inc. <http://www.melloware.com>
20   * @author Emil A. Lefkof III <info@melloware.com>
21   * @version 4.0
22   */
23  public class PropertySheetSettings
24      extends JPanel {
25  
26  	 private static final Log LOG = LogFactory.getLog(PropertySheetSettings.class);
27      private final Settings settings;
28      private final PropertySheetPanel sheet;
29  
30      /**
31       * Constructor that takes a Settings object.
32       * <p>
33       * @param aSettings the Settings object to use for this panel
34       */
35      public PropertySheetSettings(Settings aSettings) {
36      	LOG.debug("PropertySheetSettings created.");
37          this.settings = aSettings;
38  
39          setLayout(LookAndFeelTweaks.createVerticalPercentLayout());
40  
41          final DefaultBeanInfoResolver resolver = new DefaultBeanInfoResolver();
42          final BeanInfo beanInfo = resolver.getBeanInfo(this.settings);
43  
44          sheet = new PropertySheetPanel();
45          sheet.setMode(PropertySheet.VIEW_AS_CATEGORIES);
46          sheet.setProperties(beanInfo.getPropertyDescriptors());
47          sheet.readFromObject(this.settings);
48          sheet.setDescriptionVisible(true);
49          sheet.setSortingCategories(true);
50          sheet.setSortingProperties(false);
51          add(sheet, "*");
52      }
53  
54  	/**
55  	 * Gets the sheet.
56  	 * <p>
57  	 * @return Returns the sheet.
58  	 */
59  	public PropertySheetPanel getSheet() {
60  		return this.sheet;
61  	}
62  
63      
64  
65  }