src/main/java/de/uapcore/lightpit/MenuEntry.java

Sun, 17 May 2020 16:38:04 +0200

author
Mike Becker <universe@uap-core.de>
date
Sun, 17 May 2020 16:38:04 +0200
changeset 61
3e287f361c7a
parent 45
cc7f082c5ef3
child 70
821c4950b619
permissions
-rw-r--r--

moves project index to separate sub path

unfortunately the current menu highlighting strategy sucks and this is the easiest way so that everything looks correct

10
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1 /*
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
34
824d4042c857 cleanup and simplification of database access layer
Mike Becker <universe@uap-core.de>
parents: 29
diff changeset
3 *
24
8137ec335416 updates copyright header
Mike Becker <universe@uap-core.de>
parents: 11
diff changeset
4 * Copyright 2018 Mike Becker. All rights reserved.
34
824d4042c857 cleanup and simplification of database access layer
Mike Becker <universe@uap-core.de>
parents: 29
diff changeset
5 *
10
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
6 * Redistribution and use in source and binary forms, with or without
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
7 * modification, are permitted provided that the following conditions are met:
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
8 *
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
9 * 1. Redistributions of source code must retain the above copyright
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
10 * notice, this list of conditions and the following disclaimer.
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
11 *
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
12 * 2. Redistributions in binary form must reproduce the above copyright
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
13 * notice, this list of conditions and the following disclaimer in the
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
14 * documentation and/or other materials provided with the distribution.
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
15 *
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
17 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
20 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
26 * POSSIBILITY OF SUCH DAMAGE.
34
824d4042c857 cleanup and simplification of database access layer
Mike Becker <universe@uap-core.de>
parents: 29
diff changeset
27 *
10
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
28 */
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
29 package de.uapcore.lightpit;
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
30
36
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
31 import java.util.Objects;
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
32
10
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
33 /**
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
34 * Maps a resource key for the menu label to the path name for the underlying
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
35 * site.
34
824d4042c857 cleanup and simplification of database access layer
Mike Becker <universe@uap-core.de>
parents: 29
diff changeset
36 * <p>
10
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
37 * Objects of this class are internally instantiated by the
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
38 * {@link ModuleManager}.
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
39 */
36
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
40 public class MenuEntry implements Comparable<MenuEntry> {
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
41
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
42 /**
11
737ab27e37b3 implements simple request mapper
Mike Becker <universe@uap-core.de>
parents: 10
diff changeset
43 * Resource key for the menu label.
737ab27e37b3 implements simple request mapper
Mike Becker <universe@uap-core.de>
parents: 10
diff changeset
44 */
36
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
45 private final ResourceKey resourceKey;
34
824d4042c857 cleanup and simplification of database access layer
Mike Becker <universe@uap-core.de>
parents: 29
diff changeset
46
11
737ab27e37b3 implements simple request mapper
Mike Becker <universe@uap-core.de>
parents: 10
diff changeset
47 /**
737ab27e37b3 implements simple request mapper
Mike Becker <universe@uap-core.de>
parents: 10
diff changeset
48 * Path name of the module, linked by this menu entry.
737ab27e37b3 implements simple request mapper
Mike Becker <universe@uap-core.de>
parents: 10
diff changeset
49 */
36
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
50 private final String pathName;
10
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
51
36
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
52 /**
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
53 * Sequence number to determine the ordering of the menu.
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
54 */
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
55 private final int sequence;
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
56
45
cc7f082c5ef3 simplifies menu generation, adds submenus and removes VersionsModule (versions will be part of the ProjectsModule)
Mike Becker <universe@uap-core.de>
parents: 36
diff changeset
57 public MenuEntry(ResourceKey resourceKey, String pathName, int sequence) {
36
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
58 this.resourceKey = resourceKey;
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
59 this.pathName = pathName;
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
60 this.sequence = sequence;
10
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
61 }
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
62
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
63 public ResourceKey getResourceKey() {
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
64 return resourceKey;
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
65 }
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
66
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
67 public String getPathName() {
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
68 return pathName;
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
69 }
34
824d4042c857 cleanup and simplification of database access layer
Mike Becker <universe@uap-core.de>
parents: 29
diff changeset
70
36
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
71 public int getSequence() {
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
72 return sequence;
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
73 }
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
74
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
75 @Override
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
76 public boolean equals(Object o) {
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
77 if (this == o) return true;
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
78 if (o == null || getClass() != o.getClass()) return false;
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
79 MenuEntry menuEntry = (MenuEntry) o;
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
80 return resourceKey.equals(menuEntry.resourceKey) &&
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
81 pathName.equals(menuEntry.pathName);
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
82 }
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
83
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
84 @Override
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
85 public int hashCode() {
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
86 return Objects.hash(resourceKey, pathName);
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
87 }
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
88
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
89 @Override
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
90 public int compareTo(MenuEntry menuEntry) {
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
91 return Integer.compare(this.sequence, menuEntry.sequence);
0f4f8f255c32 removes features that are not (and probably will not) used anyway
Mike Becker <universe@uap-core.de>
parents: 34
diff changeset
92 }
10
89e3e6e28b69 implements automatic menu generation from module information
Mike Becker <universe@uap-core.de>
parents:
diff changeset
93 }

mercurial