JFrame:
  name: frame
  title: appname
  size: 950x600
  minimumSize: 850x300
  locationRelativeTo: null
  defaultCloseOperation: doNothingOnClose
  onWindowOpened: [execDepotUpdate,checkCorePackages,infoCorePackages,checkInitialize,initialize,checkUpdates,doUpdate,refreshToolsMenu,showNewPackages,showTips,focus]
  onWindowClosing: [saveLocalData,exit]
  iconImage: img.ae
  content:
    - Action(name=exitAction, text=menu.exit, toolTipText=menu.exitTooltip, icon=img.exit, onAction=[saveLocalData,exit])
    - Action(name=settings, text=menu.settings, toolTipText=menu.settingsTooltip, icon=img.settings, onAction=[showSettings])
    - Action(name=about, text=menu.about, toolTipText=menu.aboutTooltip, icon=img.about, onAction=[showAbout])
    - Action(name=help, text=menu.help, toolTipText=menu.helpTooltip, icon=img.help, onAction=[showHelp])
    - Action(name=report, text=menu.report, toolTipText=menu.reportTooltip, icon=img.request, onAction=[showReport])
    - Action(name=runOniFull, text=menu.runOniFull, toolTipText=menu.runOniFullTooltip, icon=img.oni, onAction=[oniFull])
    - Action(name=runOniWin, text=menu.runOniWin, toolTipText=menu.runOniWinTooltip, icon=img.oni, onAction=[oniWin])
    - Action(name=openEditionFolder, text=menu.openEditionFolder, toolTipText=menu.openEditionFolderTooltip, icon=img.folder, onAction=[openEditionFolder])
    - Action(name=refreshLocalMods, text=menu.refreshLocalMods, toolTipText=menu.refreshLocalModsTooltip, icon=img.foldernew, onAction=[refreshLocalMods])
    - Action(name=loadConfig, text=menu.loadConfig, toolTipText=menu.loadConfigTooltip, icon=img.openFile, onAction=[loadConfig])
    - Action(name=saveConfig, text=menu.saveConfig, toolTipText=menu.saveConfigTooltip, icon=img.saveFile, onAction=[saveConfig])
    - Action(name=copyConfig, text=menu.copyConfig, toolTipText=menu.copyConfigTooltip, icon=img.copy, onAction=[copyConfig])
    - Action(name=reglobalize, text=menu.reglobalize, toolTipText=menu.reglobalizeTooltip, icon=img.refresh, onAction=[reglobalizeVerify,reglobalize])
    - Action(name=tools, text=menu.manageTools, toolTipText=menu.manageToolsTooltip, icon=img.tools, onAction=[tools,refreshToolsMenu])
    - Action(name=update, text=menu.update, toolTipText=menu.updateTooltip, icon=img.update, onAction=[execDepotUpdate,checkCorePackages,infoCorePackages,checkUpdates,doUpdate,showNewPackages])
    - Action(name=corePackages, text=menu.corePackages, toolTipText=menu.corePackagesTooltip, icon=img.core, onAction=[showCorePackagesDialog])
    - JMenuBar:
        - JMenu(name=mainMenu, text=menu.main):
            - JMenuItem(action=about)
            - JMenuItem(action=settings)
            - JMenuItem(action=exitAction)
        - JMenu(name=fileMenu, text=menu.file):
            - JMenuItem(action=update)
            - JSeparator()
            - JMenuItem(action=loadConfig)
            - JMenuItem(action=saveConfig)
            - JMenuItem(action=copyConfig)
            - JSeparator()
            - JMenuItem(action=openEditionFolder)
            - JMenuItem(action=refreshLocalMods)
            - JSeparator()
            - JMenuItem(action=corePackages)
            - JMenuItem(action=reglobalize)
        - JMenu(name=toolsMenu, text=menu.tools):
            - JMenuItem(name=manageToolsItem, action=tools)
            - JSeparator()
        - JMenu(name=helpMenu, text=menu.mHelp):
            - JMenuItem(action=help)
            - JMenuItem(action=report)
    - JToolBar(name=toolbar, floatable=false, orientation=0):
        - JButton(action=exitAction, hideActionText=true)
        - JToolBarSeparator()
        - JButton(action=settings, hideActionText=true)
        - JButton(action=about, hideActionText=true)
    - JSplitPane(name=contents, orientation=horizontalSplit, continuousLayout=true):
        - JPanel(name=panMods):
            - JLabel(name=lblModTypes, text=lblModTypes.text)
            - JComboBox(name=cmbModTypes, onAction=updateTableFilter)
            - JLabel(name=lblShowOnly, text=lblShowOnly.text)
            - JRadioButton(name=radAll, text=radAll.text, onAction=updateTableFilter)
            - JRadioButton(name=radOnline, text=radOnline.text, onAction=updateTableFilter)
            - JRadioButton(name=radLocal, text=radLocal.text, onAction=updateTableFilter)
            - JRadioButton(name=radInstalled, text=radInstalled.text, onAction=updateTableFilter)
            - ButtonGroup: [radAll,radOnline,radLocal,radInstalled]
            - JLabel(name=lblShowFilter, text=lblShowFilter.text)
            - JButton(name=btnClearFilter, icon=img.clear, onAction=[clearFilter])
            - JTextField(name=txtShowFilter)
            - JComboBox(name=cmbShowFilterTo, onAction=updateTableFilter)
            - JScrollPane(name=scrollMods, vScrollBar=always, hScrollBar=never)
            - JPanel(name=panBottom):
                - JPanel(name=panBottomLeft):
                    - JButton(name=btnUnSelectAll, icon=img.unSelect16, text=btnUnSelectAll.text, onAction=[unSelectAll])
                    - JButton(name=btnRevertSelection, icon=img.undo, text=btnRevertSelection.text, toolTipText=btnRevertSelection.tooltip, onAction=[revertSelection])
                    - MigLayout: |
                         [min]
                         btnUnSelectAll=1      [min]
                         btnRevertSelection=1  [min]
                - JPanel(name=panBottomCenter):
                    - JLabel(name=lblSelectedMods, text=lblSelectedMods.text)
                    - JLabel(name=lblSelectedModsVal)
                    - JLabel(name=lblDownloadSize, text=lblDownloadSize.text)
                    - JLabel(name=lblDownloadSizeVal)
                    - JButton(name=btnInstall, icon=img.install, text=btnInstall.text, toolTipText=btnInstall.tooltip, onAction=[install,installExec,installDone])
                    - MigLayout: |
                         [grow]                               
                         |lblSelectedMods=7x<,lblSelectedModsVal<  [min]
                         |lblDownloadSize<,lblDownloadSizeVal<     [min]
                         |btnInstall=7x                            [min]
                - JPanel(name=panBottomRight):
                    - JButton(name=btnRunOniFull, action=runOniFull)
                    - JButton(name=btnRunOniWin, action=runOniWin)
                    - MigLayout: |
                         [grow]
                         >btnRunOniFull=1   [min]
                         >btnRunOniWin=1    [min]
                - MigLayout: |
                     [[gap 0px 0px, novisualpadding, insets 0]]
                     [min]              [grow]            [min]
                     panBottomLeft=5x   panBottomCenter   panBottomRight=5x    [min]
            - MigLayout: |
                 [min]                 [grow]
                 >lblModTypes          cmbModTypes<,lblShowOnly,radAll,radOnline,radLocal,radInstalled      [min]
                 >lblShowFilter        txtShowFilter+*>,btnClearFilter<,cmbShowFilterTo<                    [min]
                 scrollMods+*                                                                               [grow]
                 panBottom+*                                                                                [min]
                 {lblShowOnly: gap 30px}
        - PackageInfoBox(name=pkgInfo)
    - MigLayout:
        layoutConstraints: wrap 1
        columnConstraints: grow
        rowConstraints: grow
        constraints:
            - contents: grow

#            - tools: dock north
