private void createGUI() { setTitle(WINDOW_TITLE); setIconImages(ClientHelper.getCmisIconImages()); // Mac OS X goodies if (ClientHelper.isMacOSX()) { try { Class<?> macAppClass = Class.forName("com.apple.eawt.Application"); Method macAppGetApp = macAppClass.getMethod("getApplication", (Class<?>[]) null); Object macApp = macAppGetApp.invoke(null, (Object[]) null); ImageIcon icon = ClientHelper.getCmisIconImage(); if (icon != null) { try { macAppClass .getMethod("setDockIconImage", new Class<?>[] {Image.class}) .invoke(macApp, new Object[] {icon.getImage()}); } catch (Exception e) { LOG.debug("Could not set dock icon!", e); } } try { Class<?> fullscreenClass = Class.forName("com.apple.eawt.FullScreenUtilities"); fullscreenClass .getMethod("setWindowCanFullScreen", new Class<?>[] {Window.class, Boolean.TYPE}) .invoke(fullscreenClass, this, true); } catch (Exception e) { LOG.debug("Could not add fullscreen button!", e); } } catch (Exception e) { LOG.debug("Could not get com.apple.eawt.Application object!", e); } } setLayout(new BorderLayout()); final ClientFrame thisFrame = this; loginDialog = new LoginDialog(this); logFrame = new LogFrame(); infoDialog = new InfoDialog(this); Container pane = getContentPane(); toolBar = new JToolBar("CMIS Toolbar", JToolBar.HORIZONTAL); toolbarButton = new JButton[10]; toolbarButton[BUTTON_CONNECT] = new JButton( "Connection", new ConnectIcon(ClientHelper.TOOLBAR_ICON_SIZE, ClientHelper.TOOLBAR_ICON_SIZE)); toolbarButton[BUTTON_CONNECT].setDisabledIcon( new ConnectIcon(ClientHelper.TOOLBAR_ICON_SIZE, ClientHelper.TOOLBAR_ICON_SIZE, false)); toolbarButton[BUTTON_CONNECT].addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { showLoginForm(); } }); toolBar.add(toolbarButton[BUTTON_CONNECT]); toolBar.addSeparator(); toolbarButton[BUTTON_REPOSITORY_INFO] = new JButton( "Repository Info", new RepositoryInfoIcon(ClientHelper.TOOLBAR_ICON_SIZE, ClientHelper.TOOLBAR_ICON_SIZE)); toolbarButton[BUTTON_REPOSITORY_INFO].setDisabledIcon( new RepositoryInfoIcon( ClientHelper.TOOLBAR_ICON_SIZE, ClientHelper.TOOLBAR_ICON_SIZE, false)); toolbarButton[BUTTON_REPOSITORY_INFO].setEnabled(false); toolbarButton[BUTTON_REPOSITORY_INFO].addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { new RepositoryInfoFrame(model); } }); toolBar.add(toolbarButton[BUTTON_REPOSITORY_INFO]); toolbarButton[BUTTON_TYPES] = new JButton( "Types", new TypesIcon(ClientHelper.TOOLBAR_ICON_SIZE, ClientHelper.TOOLBAR_ICON_SIZE)); toolbarButton[BUTTON_TYPES].setDisabledIcon( new TypesIcon(ClientHelper.TOOLBAR_ICON_SIZE, ClientHelper.TOOLBAR_ICON_SIZE, false)); toolbarButton[BUTTON_TYPES].setEnabled(false); toolbarButton[BUTTON_TYPES].addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { new TypesFrame(model); } }); toolBar.add(toolbarButton[BUTTON_TYPES]); toolbarButton[BUTTON_QUERY] = new JButton( "Query", new QueryIcon(ClientHelper.TOOLBAR_ICON_SIZE, ClientHelper.TOOLBAR_ICON_SIZE)); toolbarButton[BUTTON_QUERY].setDisabledIcon( new QueryIcon(ClientHelper.TOOLBAR_ICON_SIZE, ClientHelper.TOOLBAR_ICON_SIZE, false)); toolbarButton[BUTTON_QUERY].setEnabled(false); toolbarButton[BUTTON_QUERY].addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { new QueryFrame(model); } }); toolBar.add(toolbarButton[BUTTON_QUERY]); toolbarButton[BUTTON_CHANGELOG] = new JButton( "Change Log", new ChangeLogIcon(ClientHelper.TOOLBAR_ICON_SIZE, ClientHelper.TOOLBAR_ICON_SIZE)); toolbarButton[BUTTON_CHANGELOG].setDisabledIcon( new ChangeLogIcon(ClientHelper.TOOLBAR_ICON_SIZE, ClientHelper.TOOLBAR_ICON_SIZE, false)); toolbarButton[BUTTON_CHANGELOG].setEnabled(false); toolbarButton[BUTTON_CHANGELOG].addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { new ChangeLogFrame(model); } }); toolBar.add(toolbarButton[BUTTON_CHANGELOG]); toolbarButton[BUTTON_CONSOLE] = new JButton( "Console", new ConsoleIcon(ClientHelper.TOOLBAR_ICON_SIZE, ClientHelper.TOOLBAR_ICON_SIZE)); toolbarButton[BUTTON_CONSOLE].setDisabledIcon( new ConsoleIcon(ClientHelper.TOOLBAR_ICON_SIZE, ClientHelper.TOOLBAR_ICON_SIZE, false)); toolbarButton[BUTTON_CONSOLE].setEnabled(false); toolbarButton[BUTTON_CONSOLE].addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { toolbarConsolePopup.show( toolbarButton[BUTTON_CONSOLE], 0, toolbarButton[BUTTON_CONSOLE].getHeight()); } }); toolBar.add(toolbarButton[BUTTON_CONSOLE]); toolbarConsolePopup = new JPopupMenu(); for (FileEntry fe : readScriptLibrary()) { JMenuItem menuItem = new JMenuItem(fe.getName()); final URI file = fe.getFile(); menuItem.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { ClientHelper.openConsole(ClientFrame.this, model, file); } }); toolbarConsolePopup.add(menuItem); } toolbarButton[BUTTON_TCK] = new JButton( "TCK", new TckIcon(ClientHelper.TOOLBAR_ICON_SIZE, ClientHelper.TOOLBAR_ICON_SIZE)); toolbarButton[BUTTON_TCK].setDisabledIcon( new TckIcon(ClientHelper.TOOLBAR_ICON_SIZE, ClientHelper.TOOLBAR_ICON_SIZE, false)); toolbarButton[BUTTON_TCK].setEnabled(false); toolbarButton[BUTTON_TCK].addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { new TckDialog(thisFrame, model); } }); toolBar.add(toolbarButton[BUTTON_TCK]); toolBar.addSeparator(); toolbarCreatePopup = new JPopupMenu(); documentMenuItem = new JMenuItem("Document"); documentMenuItem.setEnabled(true); toolbarCreatePopup.add(documentMenuItem); documentMenuItem.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent event) { new CreateDocumentDialog(thisFrame, model); } }); itemMenuItem = new JMenuItem("Item"); itemMenuItem.setEnabled(false); toolbarCreatePopup.add(itemMenuItem); itemMenuItem.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent event) { new CreateItemDialog(thisFrame, model); } }); folderMenuItem = new JMenuItem("Folder"); folderMenuItem.setEnabled(true); toolbarCreatePopup.add(folderMenuItem); folderMenuItem.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent event) { new CreateFolderDialog(thisFrame, model); } }); relationshipMenuItem = new JMenuItem("Relationship"); relationshipMenuItem.setEnabled(false); toolbarCreatePopup.add(relationshipMenuItem); relationshipMenuItem.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent event) { new CreateRelationshipDialog(thisFrame, model); } }); policyMenuItem = new JMenuItem("Policy"); policyMenuItem.setEnabled(false); toolbarCreatePopup.add(policyMenuItem); policyMenuItem.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent event) { new CreatePolicyDialog(thisFrame, model); } }); toolbarButton[BUTTON_CREATE] = new JButton( "Create Object", new CreateObjectIcon(ClientHelper.TOOLBAR_ICON_SIZE, ClientHelper.TOOLBAR_ICON_SIZE)); toolbarButton[BUTTON_CREATE].setDisabledIcon( new CreateObjectIcon( ClientHelper.TOOLBAR_ICON_SIZE, ClientHelper.TOOLBAR_ICON_SIZE, false)); toolbarButton[BUTTON_CREATE].setEnabled(false); toolbarButton[BUTTON_CREATE].addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { toolbarCreatePopup.show( toolbarButton[BUTTON_CREATE], 0, toolbarButton[BUTTON_CREATE].getHeight()); } }); toolBar.add(toolbarButton[BUTTON_CREATE]); toolBar.addSeparator(); toolbarButton[BUTTON_LOG] = new JButton( "Log", new LogIcon(ClientHelper.TOOLBAR_ICON_SIZE, ClientHelper.TOOLBAR_ICON_SIZE)); toolbarButton[BUTTON_LOG].setDisabledIcon( new LogIcon(ClientHelper.TOOLBAR_ICON_SIZE, ClientHelper.TOOLBAR_ICON_SIZE, false)); toolbarButton[BUTTON_LOG].addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { logFrame.showFrame(); } }); toolBar.add(toolbarButton[BUTTON_LOG]); toolbarButton[BUTTON_INFO] = new JButton( "Info", new InfoIcon(ClientHelper.TOOLBAR_ICON_SIZE, ClientHelper.TOOLBAR_ICON_SIZE)); toolbarButton[BUTTON_INFO].setDisabledIcon( new InfoIcon(ClientHelper.TOOLBAR_ICON_SIZE, ClientHelper.TOOLBAR_ICON_SIZE, false)); toolbarButton[BUTTON_INFO].addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { infoDialog.showDialog(); } }); toolBar.add(toolbarButton[BUTTON_INFO]); pane.add(toolBar, BorderLayout.PAGE_START); folderPanel = new FolderPanel(model); detailsTabs = new DetailsTabs(model); split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, folderPanel, detailsTabs); pane.add(split, BorderLayout.CENTER); addWindowListener(this); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); setPreferredSize( new Dimension( prefs.getInt(PREFS_WIDTH, (int) (screenSize.getWidth() / 1.5)), prefs.getInt(PREFS_HEIGHT, (int) (screenSize.getHeight() / 1.5)))); setMinimumSize(new Dimension(200, 60)); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); pack(); split.setDividerLocation(prefs.getInt(PREFS_DIV, getPreferredSize().width / 4)); if (prefs.getInt(PREFS_X, Integer.MAX_VALUE) == Integer.MAX_VALUE) { setLocationRelativeTo(null); } else { setLocation(prefs.getInt(PREFS_X, 0), prefs.getInt(PREFS_Y, 0)); } setVisible(true); }