View Javadoc

1   package com.melloware.jukes.gui.tool.help;
2   
3   import javax.swing.tree.DefaultMutableTreeNode;
4   import javax.swing.tree.TreeNode;
5   
6   import com.melloware.jukes.db.orm.Artist;
7   import com.melloware.jukes.db.orm.Disc;
8   import com.melloware.jukes.db.orm.Track;
9   import com.melloware.jukes.gui.tool.DynamicHelpModule;
10  import com.melloware.jukes.gui.tool.Resources;
11  
12  /**
13   * This class provides help sets (TreeNodes) for each domain class.
14   * <p>
15   * Copyright (c) 1999-2007 Melloware, Inc. <http://www.melloware.com>
16   * @author Emil A. Lefkof III <info@melloware.com>
17   * @see     com.melloware.jukes.gui.tool.DynamicHelpModule
18   * AZ Development 2010
19   */
20  public final class HelpSets {
21  
22      public static final TreeNode WELCOME_HELP_SET = createWelcomeHelpSet();
23      public static final TreeNode ARTIST_HELP_SET = createArtistHelpSet();
24      public static final TreeNode DISC_HELP_SET = createDiscHelpSet();
25      public static final TreeNode TRACK_HELP_SET = createTrackHelpSet();
26  
27      private static final String URL_PREFIX = Resources.getString(Resources.HELP_URL_PREFIX);//AZ
28      private static final String HELP_TEXT = "Help";
29  
30      private HelpSets() {
31          // Suppresses default constructor, ensuring non-instantiability.
32      }
33  
34      /**
35       * Registers all help sets with the DynamicHelpModule.
36      *
37      * @param helpModule   holds a map from selection types to help sets
38       */
39      public static void registerHelpSets(DynamicHelpModule helpModule) {
40          helpModule.registerHelp(Artist.class, ARTIST_HELP_SET);
41          helpModule.registerHelp(Disc.class, DISC_HELP_SET);
42          helpModule.registerHelp(Track.class, TRACK_HELP_SET);
43      }
44  
45      /**
46       * Creates and answers the artist help set.
47       */
48      private static TreeNode createArtistHelpSet() {
49          DefaultMutableTreeNode root = new DefaultMutableTreeNode();
50          DefaultMutableTreeNode chapter;
51  
52          chapter = createChapter(HELP_TEXT);
53          chapter.add(createTopic("Artist", "artist/general"));
54          chapter.add(createTopic("Information", "artist/information"));
55          root.add(chapter);
56  
57          chapter = createChapter("Samples");
58          chapter.add(createTopic("Sample1", "artist/sample1"));
59          chapter.add(createTopic("Sample2", "artist/sample2"));
60          root.add(chapter);
61  
62          return root;
63      }
64  
65      /**
66       * Creates and returns a chapter node.
67       */
68      private static DefaultMutableTreeNode createChapter(String name) {
69          return new DefaultMutableTreeNode(HelpNode.createChapter(name));
70      }
71  
72      /**
73       * Creates and answers the disc help set.
74       */
75      private static TreeNode createDiscHelpSet() {
76          DefaultMutableTreeNode root = new DefaultMutableTreeNode();
77          DefaultMutableTreeNode chapter;
78  
79          chapter = createChapter(HELP_TEXT);
80          chapter.add(createTopic("Disc", "disc/general"));
81          chapter.add(createTopic("Information", "disc/information"));
82          chapter.add(createTopic("Audit data", "disc/audit"));
83          root.add(chapter);
84  
85          chapter = createChapter("Samples");
86          chapter.add(createTopic("Sample1", "disc/sample1"));
87          root.add(chapter);
88  
89          return root;
90      }
91  
92      /**
93       * Creates and returns a topic node.
94       */
95      private static DefaultMutableTreeNode createTopic(String name, String path) {
96          String fullPath = URL_PREFIX + path + ".html";
97          return new DefaultMutableTreeNode(HelpNode.createTopic(name, fullPath));
98      }
99  
100     /**
101      * Creates and answers the track help set.
102      */
103     private static TreeNode createTrackHelpSet() {
104         DefaultMutableTreeNode root = new DefaultMutableTreeNode();
105         DefaultMutableTreeNode chapter;
106 
107         chapter = createChapter(HELP_TEXT);
108         chapter.add(createTopic("Track", "track/general"));
109         chapter.add(createTopic("Information", "track/information"));
110         chapter.add(createTopic("Audit data", "track/audit"));
111         chapter.add(createTopic("Editing", "track/editing"));
112         root.add(chapter);
113 
114         chapter = createChapter("Samples");
115         chapter.add(createTopic("Sample1", "track/sample1"));
116         chapter.add(createTopic("Sample2", "track/sample2"));
117         root.add(chapter);
118 
119         return root;
120     }
121 
122     /**
123      * Creates and answers the welcome help set.
124      */
125     private static TreeNode createWelcomeHelpSet() {
126         DefaultMutableTreeNode root = new DefaultMutableTreeNode();
127         DefaultMutableTreeNode chapter;
128 
129         chapter = createChapter(HELP_TEXT);
130         chapter.add(createTopic("Welcome", "welcome/welcome"));
131         chapter.add(createTopic("How to use dynamic help", "welcome/help"));
132         root.add(chapter);
133 
134         chapter = createChapter("Getting Started");
135         chapter.add(createTopic("Add new album to catalog", "welcome/new"));
136         chapter.add(createTopic("Open existing project", "welcome/open"));
137         root.add(chapter);
138 
139         return root;
140     }
141 
142 }