ÜBER xmss.de

Willkommen bei xmss.de!

xmss.de ist ein Nebenprojekt des Partner-Netzwerks

http://www.doger.de

Wofür stehen das “q” und das “x” in “PROQNOSTIX”?
“q” steht für “open source query” und “x” für “cross-platform extension”. Mehr zum “q” und “x” gibt es hier zu lesen..

Das Leistungsportfolio von PROQNOSTIX lässt sich in drei Bereiche gliedern.

I) Knowhow-Aufbau in Unternehmen in Mathematik


PROQNOSTIX bietet

  • die Entwicklung und Integration von Knowhow in Mathematik in Ihrem Unternehmen zu den Themen
    • Prognose- und Forecasting-Verfahren sowie
    • künstliche Intelligenz (KI) basierte-Verfahren.
  • Neben dem Wissenstransfer, gehören auch die Nutzung und Implementierung von maßgeschneiderten Software-Lösungen zum Angebot.

II) Software-Entwicklung zu Prognosen und künstliche Intelligenz (KI)-basierten Verfahren

  • PROQNOSTIX befähigt Unternehmen – in Anbetracht ihrer Geschäftsziele – Prognosen, Vorhersagen, Schätzungen und KI-basierte Methoden auf Big Data anzuwenden.
  • Neben Cloud-basierten skalierbaren Software-Lösungen, wie Amazon AWS, Microsoft Azure, Google.AI etc., setzt PROQNOSTIX auch maßgeschneiderte Softwarelösungen ein, um auf Basis neuester wissenschaftlicher Forschung und Markterfahrung im Data Science, das meiste für Ihr Unternehmen rauszuholen.

III) Emerging Technologies (engl. aufstrebende Technologien)


PROQNOSTIX erstellt zudem einen Prognose-Report zum Zukunftspotenzial, aus Perspektive der neuen, aufstrebenden Technologien (engl. Emerging Technologies), wie Blockchain, Internet-of-Things (IoT), Serverless Computing, Bots etc., mit dem Ziel, sinnvolle Einsatzbereiche für Ihre Unternehmung zu identifizieren und so weiteres Potenzial aufzudecken, aufzubauen und wettbewerbswirksam freizusetzen.

Main Specifications

Die folgenden Begriffe und Konzepte befinden sich im Tätigkeitsfeld der PROQNOSTIX:

  • Prognosen
  • Voraussagen
  • Forecasts
  • Schätzungen
  • Simulationen

Prognosen

Prognosis is „a forecast of the future course, or outcome, of a situation; a prediction “ (Daigle 2014, p. 7)

Der Begriff „Prognostics“ wiederum wird wie folgt definiert:

„The ability to predict future events, conditional on anticipated usage and environmental conditions, significantly contributes to a system’s resilience for safe and efficient operation.“ (Sankararaman/Abhinav/Goebel 2014, p. 533)

Prognostizieren (engl. prognosticate) bedeutet

“to foretell from signs or symptoms: predict“ (Merriam Webster Dictionary 2019)

Voraussagen (engl. Prediction) und Forecasting

Die Voraussage (engl. prediction) wird wie folgt definiert:

„Prediction is concerned with estimating the outcomes for unseen data. (…) you fit a model to a training data set, which results in an estimator f^(x) that can make predictions for new samples x.“ (Döring 2018)

Auch der Begriff des Forecasting findet immer mehr im deutschsprachigen Raum als Anglizismus Verwendung:

„Forecasting is a sub-discipline of prediction in which we are making predictions about the future, on the basis of time-series data.“ (Döring 2018)

Wie zu erkennen ist, existieren keine einheitlichen, voneinander scharf abgegrenzten Definitionen für die genannten Begriffe. Demnach kommt es beim allgemeinen Sprachgebrauch oft zu Überschneidungen der Begriffe oder zum synonymen Gebrauch.

Quellverzeichnis

Daigle, Matthew (2014): Model-based prognostics. Prognostics center of excellence. Intelligent systems division. Nasa ames research center.

Https://www.Phmsociety.Org/sites/phmsociety.Org/files/daigle-modelbasedprognostics-tutorial-phm2014_1.Pdf

Döring, Matthias (2018): Prediction vs forecasting. Predictions do not always concern the future …

https://www.Datascienceblog.Net/post/machine-learningforecasting_vs_prediction/

Merriam Webster Dictionary (2019): Progosticate. Http://www.Merriam-webster.Com/dictionary/prognosticate

Sankararaman, Shankar ; Abhinav, Saxena ; Goebel, Kai A (2014): Are current prognostic performance evaluation practices sufficient and meaningful? Annual conference of the prognostics and health management society 2014. Nasa ames research center, moffett field, ca 94035, usa

Motivation

In IT-dominated offices employees / users often hired (and sometimes unfortunately doomed) to accomplish the high complexity of company structures and processes.
The intelligent use of user interfaces  based on multimedial and -modal technologies should be orienting much more on the human nature.


„We are the masters, they are the slaves“ (Matsumoto 2005, S…). 

Technology

Die Kunst hinter Prognosen, Forecasts, Schätzungen, Simulationen etc.

Die Kunst des Prognostizierens liegt in der Bestimmung des am besten passenden (engl. fit) Modells, mit den am besten geeigneten Parametern, zum gegebenen Geschäftsziel. In der Künstlichen Intelligenz (KI) gibt es eine große Anzahl von Modellen, die es auf Eignung zu prüfen gilt. Weitere aufstrebende Technologien und deren Potenzialeinschätzung, wie Blockchain, IoT, Serverless Computing usw. gehören ebenfalls zum Prognoseangebot von PROQNOSTIX.

Modellierung von Vorhersagen

Alle Modelle arbeiten unterschiedlich, je nachdem, auf welche Anwendungsdomäne diese angewendet werden. Die Aufgabe des Prognostikers besteht also darin, die für ein bestimmtes Problem am besten geeigneten Modelle zu vergleichen und die Parameter der Modelle zu optimieren. Das Ziel besteht darin, unter Nutzung von Trainings- und Testdaten, das beste bzw. akkurateste Modell zur Erklärung der Daten ausfindig zu machen.

Prognosemethoden und Taxonomien

Die nächste Abbildung zeigt einen hierarchischen Überblick über häufig verwendete Prognosemethoden und die zugrunde liegende Taxonomie (siehe Abb. 1):

Industriezweige

Potenziell kann für jeden Industriezweig Wettbewerbspotenzial aus Prognosen und Voraussagen freigesetzt werden. Im folgenden konzentrieren wir uns auf drei Branchen, um die Art der Anwendung von Produkten und Dienstleistungen von PROQNOSTIX zu demonstrieren:

  1. Bankengewerbe
  2. Geodaten
  3. Marketing

Bankenindustrie

  • Prognosen für Investitionen an den Aktienmärkten
  • Vorhersage der Kreditwürdigkeit
  • Analyse des Potenzials von aufstrebenden Technologien, wie z. B. Blockchain, IoT etc.

Geodaten

  • Immobilienpreise
  • Demographie
  • Anwendung von Graph-Datenbanken, wie z. B. Neo4J etc.

Marketing

  • Suchmaschinenoptimierung
  • Analyse sozialer Medien
  • etc.

Prototyping

Wie geht PROQNOSTIX bei nubank.de vor?

  • Nubank.de ist ein Nebenprojekt von ask-a-woman.com (AAW) und stellt einen Entwurf für eine Modellbank auf Grundlage einer wissenschaftlichen Untersuchung dar, die von Expertinnen der AAW durchgeführt wurde.
  • PROQNOSTIX unterstützt die Definition der Unternehmensziele in Zusammenarbeit mit den Domain-Experten der nubank.de,
  • Die Bewertung des Potenzials von Big-Data-Repositories für die Anwendung mathematischer und AI-basierter Methoden und Praktiken für Prognosen, wird in einer von PROQNOSTIX bereitgestellten Software-Engineering-Umgebung durchgeführt.
  • Die Definition von Technologiepaketen, Methoden, Bibliotheken, Tools, Software Development-Kits (SDK), Ressourcen, Aufgaben, Rollen usw. gehören ebenso dazu.
  • Agile Data Science (ADS): Der Projektmanagement- und der Software-Engineering-Prozess basiert auf dem ADS-Ansatz.
  • Hybrides Design von Produkten und Dienstleistungen:
    • Lieferung einer laufenden Software-Umgebung mit Software-Lebenszyklus.
    • Inhouse Workshops zur Nutzung von Big Data, Open Source Software und Methoden des Software Engineerings und der Mathematik in Unternehmen.
  • Fallstudie: nubank.de erteilt einen Auftrag
    • Das folgende Vorgehensmodell (in Anlehnung an Sommerville 2016) wird nach dieser Meilensteinsituation angewendet (Steps I – VII):

I Voranalyse

  • Erste Umfrage und Interviews
  • Erste Vorschläge und Empfehlungen:
    • A) Anlagestrategien an den Aktienmärkten auf Basis zahlreicher Kennzahlen von Unternehmen und Machbarkeitsanalysen für mathematische Methoden.
    • B) Berechnung der Bonität von Privatpersonen und Unternehmen anhand von Daten (Schufa, Social Media, Selbsterklärungen)
    • C) Potenzialanalyse für aufkommende Technologien wie Blockchain, Serverless Computing, IoT, VR / AR / MR usw.
    • D) Bezeichnung der Workshopinhalte
    • Meilenstein: Go?


II Requirement Engineering


III Design


IV Modell


V Implementierung


VI Test


VII Evolution

The XMSS UI

INHALT DER WORKSHOPS UND SEMINARE


Der Kursinhalt ist in drei Teile gegliedert:

I) Anwendungsgebiete
II) Methoden, Techniken und Best Practices
III) Zukunftspotenzial aufstrebender Technologien


Die Workshops sind buchbar in Paketen von

  • 1 Tag á 6 Stunden (Light Package) oder
  • 3 Tage á 6 Stunden (Komplettpaket)


Andere Angebote sind verfügbar.


Der Preis für einen Workshop beträgt 150 € / h zzgl. Steuern:

  • Light Package (900 € zzgl. 19% USt)
  • Komplettpaket (2700 € zzgl. 19% Ust)


I) ANWENDUNGSBEREICHE


Wir geben zunächst einen Überblick über mögliche Anwendungsbereiche und konzentrieren uns dann auf die anfragende Unternehmensbranche.

Als Beispiel dürfte die Bankenbranche interessiert sein

  • Prognosen für Investitionen an den Aktienmärkten und damit die wesentlichen Leistungsindikatoren der Unternehmen,
  • Vorhersagen über die Kreditwürdigkeit einer Privatperson oder eines Unternehmens,
  • die Anwendung von KI-Methoden etc.

Der Bereich Geoinformationssysteme (GIS) wendet Prognosen und andere mathematische Methoden für die Entwicklung von an

  • Immobilienpreise
  • Demografie
  • etc.

Marketingabteilungen und Agenturen sind am Erfolg ihrer Kampagnen in den Bereichen interessiert

  • Suchmaschinenoptimierung
  • Social Media Analytics
  • etc.


II METHODEN, TECHNIKEN UND BEST PRACTICES


Im zweiten Teil des Workshops befassen wir uns hauptsächlich mit Methoden, Techniken und Best Practices der Mathematik, Informatik und Betriebswirtschaftslehre, berücksichtigen aber auch Methoden aus anderen Branchen.

Methoden, Techniken und Praktiken der Mathematik sind wie folgt:

  • Mathematik
    • Statistiken
    • Künstliche Intelligenz, maschinelles Lernen, tiefes Lernen
    • Bibliotheken & Werkzeuge
    • Informatik
  • Informatik
    • Werkzeug-Portfolio
    • Softwareentwicklung
    • Modellierung
    • Programmiersprachen
    • etc.

  • Business Administration
    • Projektmanagement,
    • Controlling,
    • Logistik,
    • Der Umsatz
    • etc.


Hier können potenziell alle Methoden, Techniken und Best Practices einer anderen Disziplin oder Branche wie Recht, Gesundheitswesen, Unterhaltungssektor, Automobilindustrie usw. aufgeführt werden.

III ZUKÜNFTIGES POTENZIAL VON EMERGING TECHNOLOGIES


Der dritte Teil des Workshops beleuchtet das Potenzial neuer Technologien und erarbeitet und prognostiziert Möglichkeiten aus den folgenden neuen Technologien:

  • Die Blockchain ist offensichtlich die Technologie mit der größten potenziellen Auswirkung auf die Transaktionsprozesse der Zukunft. Da Transaktionen der Kern des unternehmerischen Umgangs mit Kunden und Mitarbeitern sind, wird dieses Thema auch zur Erreichung definierter Geschäftsziele evaluiert.
  • Das Internet der Dinge (IoT) gewinnt für die Zukunftsmärkte zunehmend an Bedeutung. Während des Workshops wird eine Prognose über das Potenzial für das jeweilige Unternehmen erstellt.
  • Bots übernehmen immer mehr Aufgaben in der Interaktion zwischen Unternehmen und Kunden und senken so zunehmend die Kosten e. G. in den Support-Abteilungen.
  • Virtual Reality (VR), Augmented Reality (AR) und Mixed Reality (MR) bieten neue Möglichkeiten, um mit Produkten und Dienstleistungen von Unternehmen für Privathaushalte und Branchen ein gesteigertes Nutzererlebnis zu schaffen.
  • Weitere aufstrebende Technologien wie 3D- und 4D-Druck, Autonome Fahrzeuge (AV), Drohnen, Transhumanismus usw. werden ebenfalls diskutiert.

Model

Meta-Modelling

The following decomposition diagram focuses the organisation units, to be supported by XMSS. The information flows between the organizational units are registered here.

Figuer 6: Meta-Organisation in Enterprises
  • It is assumed that each OU has its own subsystem of key figure and value drivers (KuW).
  • For this purpose, the KuW vkn for the board level, fqkn of the functional areas fq and spfqkn of the sub-functional areas spfq are defined for all fq.
  • This approach is based on the decomposition of the organizational structure of the company (see Fig. 6).
  • The following example shows what an allocation of the Kuw can look like in practice (see Table 1).
  • The actual analysis of the key figure dimension on which the given management support system is based can be done e.g. B. Record as follows (general presentation).

Table 1: Key Performance Indicators

Special MSS elements are a central component of XMSS and are based on different KuW depending on the specification. XMSS provides the user with the relevant KuW and their dependencies or correlations with each other using element-specific methods. Here are four examples of such methods and procedures.

XMSS Components and Elements

Specific MSS elements are a central component of XMSS and are based on different KuW depending on the specification. XMSS provides the user with the relevant KuW and their dependencies or correlations with each other using element-specific methods. Here are four examples of such methods and procedures (see fig. 7).

Figure 7: XMSS Elements
Figure X: XMSS Business Modell I
Figure X: XMSS Business II

IT-Modell

3-Layer-Architecture

Figure 8: 3-Layer-Architecture

Business and User Model Interfaces

Figure 9: Business- and User Model Interfaces

Class Model of the UI layer

Figure 10: Class Model of the Business Layer

Class Model of Business Layer

Figure 11: Class Model of the Business Layer

Class Modell of Business- and Data Layer

Figure 12: Class Model of Business- and Data Layer

Class Modell of Data Layer

Figure 13: Class Modell of Data Layer

Sequence Diagram of XMSS-Element „Simulation“

Figure 15: Sequence Diagram of the XMSS-Element „Simulation“

Deployment Model

Figure 14: XMSS Deployment Model

Implementation

Concept of integration, testing and handover

After the implementation phase, the components are distributed and the necessary software (and also hardware) systems integrated (e.g. inserting the db4O packages into the IS of the company and installing the JVM and other components (Flash, RealPlayer etc .) in the client-server system environment, where appropriate the expansion or (re) integration of external services (database pool providers, business and information services etc.) is also pending.
Then it is necessary to validate the system results with the test. In a milestone situation, this includes comparing or determining the target-actual deviations from the goals set in the target definition. All the results of the content belong carefully to everyone involved, in a separate document. In it, the target deviations, the problem-solving process and personnel aspects as well as an analysis of the success factor communication during the project process should be presented. A final meeting finally (as a provisional) last project event enables the exchange of know-how and experience and the formal handover.

XMSSmodules.java

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreeSelectionModel;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultTreeCellRenderer;
import javax.swing.ImageIcon;
import java.net.URL;
import java.io.IOException;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.LayoutManager;

public class XMSSmodules extends JPanel 
                          implements TreeSelectionListener {
    private JEditorPane htmlPane;
    private JTree tree;
    private URL helpURL;
    private static boolean DEBUG = false;

    public XMSSmodules() {
        super(new BorderLayout());
        //Create the nodes.        
        DefaultMutableTreeNode top =
            new DefaultMutableTreeNode("myXMSS");
        createNodes(top);
        //Create a tree that allows one selection at a time.
        tree = new JTree(top);
        tree.getSelectionModel().setSelectionMode
                (TreeSelectionModel.SINGLE_TREE_SELECTION);
        //Set the icon for leaf nodes.
        ImageIcon leafIcon = createImageIcon("images/middle.gif");
        if (leafIcon != null) {
            DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer();
            renderer.setLeafIcon(leafIcon);
            tree.setCellRenderer(renderer);
        } else {
            System.err.println("Leaf icon missing; using default.");
        }
        //Listen for when the selection changes.
        tree.addTreeSelectionListener(this);
        //Create the scroll pane and add the tree to it. 
        JScrollPane treeView = new JScrollPane(tree);
        //Create the HTML viewing pane.
        htmlPane = new JEditorPane();
        htmlPane.setEditable(false);
        initHelp();
        JScrollPane htmlView = new JScrollPane(htmlPane);
        //Add the scroll panes to a split pane.
        JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
        splitPane.setTopComponent(treeView);
        splitPane.setBottomComponent(htmlView);
        splitPane.setDividerLocation(128);
        add(splitPane, BorderLayout.CENTER);
    }
    /** Required by TreeSelectionListener interface. */
    public void valueChanged(TreeSelectionEvent e) {
        DefaultMutableTreeNode node = (DefaultMutableTreeNode)
                           tree.getLastSelectedPathComponent();
        if (node == null) return;
        Object nodeInfo = node.getUserObject();
        if (node.isLeaf()) {
            moduleComponentInfo moduleComponent = (moduleComponentInfo)nodeInfo;
            displayURL(moduleComponent.moduleComponentURL);
            if (DEBUG) {
                System.out.print(moduleComponent.moduleComponentURL + ":  n    ");
            }
        } else {
            displayURL(helpURL); 
        }
        if (DEBUG) {
            System.out.println(nodeInfo.toString());
        }
    }
    private class moduleComponentInfo {
        public String moduleComponentName;
        public URL moduleComponentURL;

        public moduleComponentInfo(String moduleComponent, String filename) {
            moduleComponentName = moduleComponent;
            moduleComponentURL = XMSSmodules.class.getResource(filename);
            if (moduleComponentURL == null) {
                System.err.println("Couldn't find file: "
                                   + filename);
            }
        }
        public String toString() {
            return moduleComponentName;
        }
    }
    private void initHelp() {
        String s = "object_preview.html";
        helpURL = XMSSmodules.class.getResource(s);
        if (helpURL == null) {
            System.err.println("Couldn't open help file: " + s);
        } else if (DEBUG) {
            System.out.println("Help URL is " + helpURL);
        }
       displayURL(helpURL);
    }
    private void displayURL(URL url) {
        try {
            if (url != null) {
                htmlPane.setPage(url);
            } else { //null url
		htmlPane.setText("check code !!!");
                if (DEBUG) {
                    System.out.println("Attempted to display a null URL.");
                }
            }
        } catch (IOException e) {
            System.err.println("Attempted to read a bad URL: " + url);
        }
    }
    private void createNodes(DefaultMutableTreeNode top) {
        DefaultMutableTreeNode moduleCategory = null;
        DefaultMutableTreeNode moduleComponent = null;
 
        moduleCategory = new DefaultMutableTreeNode("XMSS Views");
        top.add(moduleCategory);
     
        moduleComponent = new DefaultMutableTreeNode(new moduleComponentInfo
            ("XMSS Main Map",
            "xmss_main_map.html"));
        moduleCategory.add(moduleComponent);
 
        moduleComponent = new DefaultMutableTreeNode(new moduleComponentInfo
            ("XMSS Department View",
            "xmss_department_view.html"));
        moduleCategory.add(moduleComponent);
     
        moduleComponent = new DefaultMutableTreeNode(new moduleComponentInfo
            ("XMSS Extern View",
            "xmss_extern_view.html"));
        moduleCategory.add(moduleComponent);
  
        moduleCategory.add(moduleComponent);		
     
        moduleCategory = new DefaultMutableTreeNode("Reports");
        top.add(moduleCategory);

        moduleComponent = new DefaultMutableTreeNode(new moduleComponentInfo
            ("AlleWochenberichte2005.xls",
             "excel_preview_1.html"));
        moduleCategory.add(moduleComponent);
    
        moduleComponent = new DefaultMutableTreeNode(new moduleComponentInfo
            ("KennzahlenVertriebNov2005.xls",
             "excel_preview_2.html"));

        moduleCategory.add(moduleComponent);        
           moduleCategory = new DefaultMutableTreeNode("Multimedia- und Hypermedia-Dateien");
        top.add(moduleCategory);

        moduleComponent = new DefaultMutableTreeNode(new moduleComponentInfo
            ("ConferenceSamplePart1.avi",
            "video_preview.html"));
        moduleCategory.add(moduleComponent);

        moduleComponent = new DefaultMutableTreeNode(new moduleComponentInfo
            ("ProjectPresentationA12.ppt",
            "pp_preview_a12.html"));
        moduleCategory.add(moduleComponent);

        moduleComponent = new DefaultMutableTreeNode(new moduleComponentInfo
            ("VectorPresentationApplet.xhtml",
            "vector_presentation_applet.html"));
        moduleCategory.add(moduleComponent);

        moduleComponent = new DefaultMutableTreeNode(new moduleComponentInfo
            ("UnserKennzahlensytem.doc",
	     "doc_viewer.html"));
        moduleCategory.add(moduleComponent);		
		moduleCategory = new DefaultMutableTreeNode("Avatare");
        top.add(moduleCategory);

        moduleComponent = new DefaultMutableTreeNode(new moduleComponentInfo
            ("Avatar Settings",
             "avatar_settings.html"));
        moduleCategory.add(moduleComponent);
		
        moduleComponent = new DefaultMutableTreeNode(new moduleComponentInfo
            ("ReportAgent",
             "report_agent.html"));
        moduleCategory.add(moduleComponent);

        moduleComponent = new DefaultMutableTreeNode(new moduleComponentInfo
            ("Simulation Agent",
             "simulation_agent.html"));
        moduleCategory.add(moduleComponent);

        moduleComponent = new DefaultMutableTreeNode(new moduleComponentInfo
            ("Conference Agent",
             "conference_agent.html"));
        moduleCategory.add(moduleComponent);
				
		moduleCategory = new DefaultMutableTreeNode("OLAP_Module");
        top.add(moduleCategory);

        moduleComponent = new DefaultMutableTreeNode(new moduleComponentInfo
            ("OLAP-Cube Settings",
             "olap_settings.html"));
        moduleCategory.add(moduleComponent);

        moduleComponent = new DefaultMutableTreeNode(new moduleComponentInfo
            ("Olap-Cube Viewer",
             "olap_viewer.html"));
        moduleCategory.add(moduleComponent);		
    }
    /** Returns an ImageIcon, or null if the path was invalid. */
    protected static ImageIcon createImageIcon(String path) {
        java.net.URL imgURL = XMSSmodules.class.getResource(path);
        if (imgURL != null) {
            return new ImageIcon(imgURL);
        } else {
            System.err.println("Couldn't find file: " + path);
            return null;
        }
    }
}

Click here to get the full source code on Github.

XMSSMenuBar.java

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
import java.awt.*;
import java.awt.event.*;
import javax.swing.*; // Import der benötigten API-Packages

public class XMSSMenuBar extends JMenuBar 
{

   String[ ] fileItems = new String[ ] { "Open XMSS-File", "Save XMSS-File", "Open Media-File", "Exit" };
   String[ ] manageItems = new String[ ] { "Preferences", "Simulation", "Flow-Charts-Analyser" };
   String[ ] videoItems = new String[ ] { "Conference", "Capture Video", "Edit", "Configure Avatar", };
   String[ ] audioItems = new String[ ] { "Speech-Options", "Acoustic Designer", "Record Audio", "Edit Audio" };
   String[ ] phoneItems = new String[ ] { "Phone-Options", "Make a phone call", "Send SMS", "Use UMTS" };
   String[ ] interItems = new String[ ] { "Database-Settings", "Online-Analytical-Processing", "Plug-In-Settings", "Browser-Settings" };
   String[ ] helpItems = new String[ ] {  "XMSS Beta-Version 0.9", "Index A-Z", "XMSS-Introduction", "XMSS-Manual" };
   
   char[ ] fileShortcuts = { 'O','S','M','X' };
   char[ ] manageShortcuts = { 'P','S','F','V' };
   char[ ] videoShortcuts = { 'S','M','C','V' };
   char[ ] audioShortcuts = { 'C','H','L','J' };
   char[ ] phoneShortcuts = { 'B','U','Ü','K' };
   char[ ] interShortcuts = { 'D','G','D','I' };
   char[ ] helpShortcuts = { 'E','F','A','W' };
   
   XMSSprocesses process;
   XMSSmodules modules;
   
   public XMSSMenuBar(  ) 
  {

      JMenu fileMenu = new JMenu("FILE");
      JMenu manageMenu = new JMenu("MANAGE");
      JMenu videoMenu = new JMenu("VIDEO");
      JMenu audioMenu = new JMenu("AUDIO");
	  JMenu phoneMenu = new JMenu("PHONE");
	  JMenu interMenu = new JMenu("INTERFACES");
	  JMenu helpMenu = new JMenu("HELP");
	  JMenu report = new JMenu("View Reports");
      JMenu standardReport = new JMenu("Standard-Reports");
      JMenu adhocReport = new JMenu("Ad-Hoc-Report");
      JMenu exceptionReport = new JMenu("Exception-Reports");    
      // Assemble the File menus with mnemonics.
      ActionListener printListener = new ActionListener(  ) 
      {
         public void actionPerformed(ActionEvent event) 
         {
            System.out.println("Menu item [" + event.getActionCommand(  ) +
                               "] was pressed.");
         }
      };
      for (int i=0; i < fileItems.length; i++) 
      {
         JMenuItem item = new JMenuItem(fileItems[i], fileShortcuts[i]);
         item.addActionListener(printListener);
         fileMenu.add(item);
      }
      for (int i=0; i < phoneItems.length; i++) 
      {
          JMenuItem item = new JMenuItem(phoneItems[i], phoneShortcuts[i]);
          item.addActionListener(printListener);
          phoneMenu.add(item);
       }    
      for (int i=0; i < audioItems.length; i++) 
      {
          JMenuItem item = new JMenuItem(audioItems[i], audioShortcuts[i]);
          item.addActionListener(printListener);
          audioMenu.add(item);
      } 
      for (int i=0; i < interItems.length; i++)
      {
          JMenuItem item = new JMenuItem(interItems[i], interShortcuts[i]);
          item.addActionListener(printListener);
          interMenu.add(item);
      }
      
      for (int i=0; i < interItems.length; i++) 
      {
          JMenuItem item = new JMenuItem(helpItems[i], helpShortcuts[i]);
          item.addActionListener(printListener);
          helpMenu.add(item);
      }      
      // Assemble the File menus with keyboard accelerators.      
      for (int i=0; i < manageItems.length; i++)
      {
         JMenuItem item = new JMenuItem(manageItems[i]);
         item.setAccelerator(KeyStroke.getKeyStroke(manageShortcuts[i],
              Toolkit.getDefaultToolkit(  ).getMenuShortcutKeyMask(  ), false));
         item.addActionListener(printListener);
         manageMenu.add(item);
      }
      // Insert a separator in the Management menu in Position 1 after "Undo".
      manageMenu.insertSeparator(1);
      // Assemble the submenus of the management menu.
      JMenuItem item;
      standardReport.add(item = new JMenuItem("Daily Report"));
      item.addActionListener(printListener);
      standardReport.add(item = new JMenuItem("Weekly Report"));
      standardReport.add(item = new JMenuItem("Monthly Report"));
      standardReport.add(item = new JMenuItem("4-Month Report"));
      standardReport.add(item = new JMenuItem("Yearly Report"));
      item.addActionListener(printListener);
      report.add(standardReport);
      report.add(adhocReport);
      report.add(exceptionReport);
      manageMenu.add(report);      
      // assemble the video menu    
      videoMenu.add(item = new JCheckBoxMenuItem("Camera On"));
      item.addActionListener(printListener);
      videoMenu.addSeparator(  );
      ButtonGroup buttonGroup = new ButtonGroup(  );
      videoMenu.add(item = new JRadioButtonMenuItem("Radio 1"));
      item.addActionListener(printListener);
      buttonGroup.add(item);
      videoMenu.add(item = new JRadioButtonMenuItem("Radio 2"));
      item.addActionListener(printListener);
      buttonGroup.add(item);
      videoMenu.addSeparator(  );
      videoMenu.add(item = new JMenuItem("Potted Plant", 
                           new ImageIcon("image.gif")));
      item.addActionListener(printListener);
      //  adding all the menus to the menu bar.
      add(fileMenu);
      add(manageMenu);
      add(videoMenu);
	  add(audioMenu);  
      add(phoneMenu);
      add(interMenu);
    add(helpMenu);
	}  }

Click here to get the full source code on Github.

XMSSMainframe.java

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
/**
 * 
 */
/**
 * @author
 * Nuri Ayhan Doger 
 * info@doger.de
 *  
 * „XMSS – eXtended Management Support Systems (MSS) - 
 * Erweiterung von MSS mit Hilfe von neuen Medien 
 * auf der Grundlage von kognitionswissenschaftlichen 
 * und Künstliche Intelligenz (KI)-basierten Konzepten“

 * (evolutionärer Prototyp im Rahmen einer Master-Thesis 
 * im Master-Studiengang Master Of Science in Informationsystems) 
 *
 * unter der Betreuung von:
 *
 * Prof.Dr. Dieter Ehrenberg
 * Institut für Wirtschaftsinformatik
 * Universität Leipzig
 * XMSSMainFrame.java
 */
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JPanel;
import javax.swing.JSplitPane;
import javax.swing.border.TitledBorder;

public class XMSSMainFrame extends JFrame {
	private JMenuBar jJMenuBar = null;
	private JPanel jPanel = null;
	private JSplitPane jSplitPane = null;
	private JPanel jPanel1 = null;
	private JPanel jPanel2 = null;
	/**
	 * This method initializes 
	 * 
	 */
	public XMSSMainFrame() {
		super();
		initialize();
	}
	/**
	 * This method initializes this
	 * 
	 */
	private void initialize() {
        this.setSize(new java.awt.Dimension(1024,664));
        this.setContentPane(getJPanel());
        this.setTitle("Prototp XMSS vs 0.992");
        this.setJMenuBar(getJJMenuBar());		
	}
	/**
	 * This method initializes jJMenuBar	
	 * 	
	 * @return javax.swing.JMenuBar	
	 */
	private JMenuBar getJJMenuBar() {
		if (jJMenuBar == null) {
			jJMenuBar = new XMSSMenuBar();
			jJMenuBar.setPreferredSize(new java.awt.Dimension(0,25));
		}
		return jJMenuBar;
	}
	/**
	 * This method initializes jPanel	
	 * 	
	 * @return javax.swing.JPanel	
	 */

	private JPanel getJPanel() {
		if (jPanel == null) {
			jPanel = new JPanel(new BorderLayout());
			jPanel.add(getJSplitPane(), BorderLayout.CENTER);
		}
		return jPanel;
	}
	/**
	 * This method initializes jSplitPane	
	 * 	
	 * @return javax.swing.JSplitPane	
	 */
	private JSplitPane getJSplitPane() {
		if (jSplitPane == null) {
			jSplitPane = new JSplitPane();
			jSplitPane.setResizeWeight(0.0D);
			jSplitPane.setPreferredSize(this.getSize());
			jSplitPane.setLeftComponent(getJPanel1());
			jSplitPane.setRightComponent(getJPanel2());
			jSplitPane.setDividerLocation(632);
		}
		return jSplitPane;
	}

	/**
	 * This method initializes jPanel1	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getJPanel1() {
		if (jPanel1 == null) {
			jPanel1 = new XMSSmodules();
			jPanel1.setBorder(new TitledBorder("OBJECTS"));
		}
		return jPanel1;
	}
	/**
	 * This method initializes jPanel2	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getJPanel2() {
		if (jPanel2 == null) {
			jPanel2 = new XMSSprocesses();
			jPanel2.setBorder(new TitledBorder("PROCESSES"));
		}
		return jPanel2;
	}	
    /**
     * Create the GUI and show it.  For thread safety,
     * this method should be invoked from the
     * event-dispatching thread.
     */
    static void createAndShowGUI() {
        //Make sure we have nice window decorations.
        JFrame.setDefaultLookAndFeelDecorated(true);
        //Create and set up the window.
        JFrame frame = new XMSSMainFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //Display the window.
        frame.pack();
        frame.setVisible(true);
    }
    public static void main(String[] args) {
        //Schedule a job for the event-dispatching thread:
        //creating and showing this application's GUI.
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }	
}  //  @jve:decl-index=0:visual-constraint="10,10"

Click here to get the full source code on Github.

Legend

                                                             Download XMSS Demo