Class ApplicationMain


  • public abstract class ApplicationMain
    extends Object
    Class for starting application
    • Field Detail

      • applicationShortName

        protected final String applicationShortName
        Application Short Name
      • applicationIcon

        protected final Image applicationIcon
        Application Icon
      • gui

        protected final boolean gui
        GUI Flag
      • singleInstance

        protected final boolean singleInstance
        Single Instance Flag
      • mainClass

        protected final Class<?> mainClass
        Main Class
      • additionalPaths

        protected final Set<String> additionalPaths
        Additional Paths
      • overwritablePaths

        protected final Set<String> overwritablePaths
        Paths which can be overridden by directories.properties
      • shutdownHookThreads

        protected final List<Thread> shutdownHookThreads
        Shutdown Hook Threads
    • Constructor Detail

      • ApplicationMain

        public ApplicationMain​(String applicationShortName,
                               Image applicationIcon,
                               boolean gui,
                               boolean singleInstance,
                               Class<?> mainClass)
        Constructor
        Parameters:
        applicationShortName - Application Short Name (Only used for displaying or logging errors during startup)
        applicationIcon - Application Icon (Only used for displaying errors during startup) or null
        gui - True if application is a GUI application, false otherwise
        singleInstance - True if there should be only a single instance of the program running, false otherwise
        mainClass - Main Class (Used for loading resources and finding jar file)
      • ApplicationMain

        public ApplicationMain​(String applicationShortName,
                               Image applicationIcon,
                               boolean gui,
                               boolean singleInstance,
                               Class<?> mainClass,
                               List<String> additionalPaths)
        Constructor
        Parameters:
        applicationShortName - Application Short Name (Only used for displaying or logging errors during startup)
        applicationIcon - Application Icon (Only used for displaying errors during startup) or null
        gui - True if application is a GUI application, false otherwise
        singleInstance - True if there should be only a single instance of the program running, false otherwise
        mainClass - Main Class (Used for loading resources and finding jar file)
        additionalPaths - Additional Paths
      • ApplicationMain

        public ApplicationMain​(String applicationShortName,
                               Image applicationIcon,
                               boolean gui,
                               boolean singleInstance,
                               Class<?> mainClass,
                               List<String> additionalPaths,
                               List<String> overwritablePaths)
        Constructor
        Parameters:
        applicationShortName - Application Short Name (Only used for displaying or logging errors during startup)
        applicationIcon - Application Icon (Only used for displaying errors during startup) or null
        gui - True if application is a GUI application, false otherwise
        singleInstance - True if there should be only a single instance of the program running, false otherwise
        mainClass - Main Class (Used for loading resources and finding jar file)
        additionalPaths - Additional Paths
        overwritablePaths - Paths which can be overridden by directories.properties
    • Method Detail

      • start

        public void start​(String[] args)
        Start Application
        Parameters:
        args - Arguments
      • exit

        public void exit()
        Exit Application with exit code 0
      • exit

        public void exit​(boolean restart)
        Exit Application with exit code 0
        Parameters:
        restart - Restart Application
      • exit

        public void exit​(int exitCode)
        Exit Application
        Parameters:
        exitCode - Exit Code
      • exit

        public void exit​(int exitCode,
                         boolean restart)
        Exit Application
        Parameters:
        exitCode - Exit Code
        restart - Restart Application
      • restartApplication

        protected boolean restartApplication()
        Restart Application
        Returns:
        True if application could be restarted, false otherwise
      • exitNow

        protected void exitNow​(int exitCode)
        Actually Exit Application now
        Parameters:
        exitCode - Exit Code
      • initializeApplicationProperties

        protected void initializeApplicationProperties()
        Initialize Application Properties from Application_Config.properties
      • initializeJarFilenameAndApplicationPathProperties

        protected void initializeJarFilenameAndApplicationPathProperties()
        Initialize JarFilename and ApplicationPath properties
      • initializeProfileAndLogsPathProperties

        protected void initializeProfileAndLogsPathProperties​(String programUserDir)
        Initialize ProfilePath and LogsPath properties
        Parameters:
        programUserDir - Program User Directory
      • initializeAdditionalPathProperties

        protected void initializeAdditionalPathProperties​(String programUserDir)
        Initialize additional path properties
        Parameters:
        programUserDir - Program User Directory
      • overrideDirectoryProperties

        protected void overrideDirectoryProperties()
        Read the directories.txt from program folder if exists and override paths when definded in the file
      • readDirectoriesFile

        protected Properties readDirectoriesFile()
                                          throws IOException
        The user can override the path of some directories. There must only be a textfile called directories.txt in the programm folder. A line in the file must look like this Name Path Name and Path must be seperated by a tab.
        Returns:
        Properties or null if no file exists
        Throws:
        IOException
      • initializeLogging

        protected void initializeLogging()
        Initialize Logging
      • parseDefaultCommandLine

        protected void parseDefaultCommandLine​(String[] args)
        Parse default command line
        Parameters:
        args - Arguments
      • ensureSingleInstance

        protected void ensureSingleInstance​(String lockFileDirectory,
                                            String lockFilename)
        Ensure single instance by locking lock file
        Parameters:
        lockFileDirectory - Lock File Directory
        lockFilename - Lock Filename
      • releaseSingleInstanceLockFile

        public void releaseSingleInstanceLockFile()
        Release Single Instance Lock File
      • logStartupError

        protected void logStartupError​(String message,
                                       Throwable t)
        Log Startup Error to Basic Log File
        Parameters:
        message - Message
        t - Throwable
      • displayStartupError

        protected void displayStartupError​(String message)
        Display Startup Error
        Parameters:
        message - Message
      • deleteOldLogFiles

        protected void deleteOldLogFiles()
        Delete old log files
      • setSystemLookAndFeel

        protected boolean setSystemLookAndFeel()
        Change Look and Feel to System LookAndFeel
        Returns:
        True if successfull, false otherwise
      • changeLookAndFeel

        protected boolean changeLookAndFeel​(String lookAndFeelClassName)
        Change Look and Feel
        Parameters:
        lookAndFeelClassName - LookAndFeel Class Name
        Returns:
        True if successfull, false otherwise
      • addDefaultShutdownHook

        protected void addDefaultShutdownHook()
        Add Default Shutdown Hook, which will call the shutdownHookExit() method.
      • shutdownHookExit

        protected void shutdownHookExit()
        Method which is called when default shutdown hook was added with addDefaultShutdownHook(). By default this method calls the exit() method.
      • addShutdownHook

        protected void addShutdownHook​(Thread shutdownHookThread)
        Add Shutdown Hook
        Parameters:
        shutdownHookThread - Shutdown Hook Thread
      • removeShutdownHook

        protected void removeShutdownHook​(Thread shutdownHookThread)
        Remove Shutdown Hook
        Parameters:
        shutdownHookThread - Shutdown Hook Thread
      • removeAllShutdownHooks

        protected void removeAllShutdownHooks()
        Remove All Shutdown Hooks (which were previously added with addShutdownHook(Thread)
      • main

        protected abstract void main​(String[] args)
        Start Application implemented by sub class
        Parameters:
        args - Arguments