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