private JMenu createHelpMenu() { List<JComponent> menuItems = new ArrayList<JComponent>(); MenuAction menuAction = null; menuAction = new MenuAction("User Guide ... ") { @Override public void actionPerformed(ActionEvent e) { try { BrowserLauncher.openURL(SERVER_BASE_URL + "igv/UserGuide"); } catch (IOException ex) { log.error("Error opening browser", ex); } } }; menuAction.setToolTipText(HELP_TOOLTIP); menuItems.add(MenuAndToolbarUtils.createMenuItem(menuAction)); if (Desktop.isDesktopSupported()) { final Desktop desktop = Desktop.getDesktop(); if (desktop.isSupported(Desktop.Action.MAIL)) { menuAction = new MenuAction("Help Forum...") { @Override public void actionPerformed(ActionEvent e) { try { URI uri = new URI("http://groups.google.com/forum/#!forum/igv-help"); Desktop.getDesktop().browse(uri); } catch (Exception ex) { log.error("Error opening igv-help uri", ex); } } }; menuAction.setToolTipText("Email support"); menuItems.add(MenuAndToolbarUtils.createMenuItem(menuAction)); } } menuAction = new MenuAction("About IGV ") { @Override public void actionPerformed(ActionEvent e) { (new AboutDialog(IGV.getMainFrame(), true)).setVisible(true); } }; menuAction.setToolTipText(ABOUT_TOOLTIP); menuItems.add(MenuAndToolbarUtils.createMenuItem(menuAction)); MenuAction helpMenuAction = new MenuAction("Help"); return MenuAndToolbarUtils.createMenu(menuItems, helpMenuAction); }
private JMenu createGenomeSpaceMenu() { JMenu menu = new JMenu("GenomeSpace"); MenuAction menuAction = null; menuAction = new LoadFromGSMenuAction("Load File from GenomeSpace...", KeyEvent.VK_U, igv); menu.add(MenuAndToolbarUtils.createMenuItem(menuAction)); menu.addSeparator(); menuAction = new LoadGenomeFromGSMenuAction("Load Genome from GenomeSpace...", KeyEvent.VK_Z, igv); menu.add(MenuAndToolbarUtils.createMenuItem(menuAction)); menu.addSeparator(); menuAction = new GSSaveSessionMenuAction("Save Session to GenomeSpace...", igv); menu.add(MenuAndToolbarUtils.createMenuItem(menuAction)); menuAction = new GSOpenSessionMenuAction("Load Session from GenomeSpace...", igv); menu.add(MenuAndToolbarUtils.createMenuItem(menuAction)); menu.add(new JSeparator()); menuAction = new MenuAction("Logout") { @Override public void actionPerformed(ActionEvent e) { GSUtils.logout(); if (MessageUtils.confirm( "You must shutdown IGV to complete the GenomeSpace logout. Shutdown now?")) { doExitApplication(); } } }; menu.add(MenuAndToolbarUtils.createMenuItem(menuAction)); menu.add(new JSeparator()); menuAction = new MenuAction("Register... ") { @Override public void actionPerformed(ActionEvent e) { try { BrowserLauncher.openURL(GENOMESPACE_REG_PAGE); } catch (IOException ex) { log.error("Error opening browser", ex); } } }; menuAction.setToolTipText(GENOMESPACE_REG_TOOLTIP); menu.add(MenuAndToolbarUtils.createMenuItem(menuAction)); menu.setVisible( PreferenceManager.getInstance().getAsBoolean(PreferenceManager.GENOME_SPACE_ENABLE)); return menu; }
private JMenu createRegionsMenu() { List<JComponent> menuItems = new ArrayList<JComponent>(); MenuAction menuAction = null; menuAction = new NavigateRegionsMenuAction("Region Navigator ...", IGV.getInstance()); menuAction.setToolTipText(UIConstants.REGION_NAVIGATOR_TOOLTIP); menuItems.add(MenuAndToolbarUtils.createMenuItem(menuAction)); menuAction = new MenuAction("Gene Lists...", null, KeyEvent.VK_S) { @Override public void actionPerformed(ActionEvent e) { (GeneListManagerUI.getInstance(IGV.getMainFrame())).setVisible(true); } }; menuAction.setToolTipText("Open gene list manager"); menuItems.add(MenuAndToolbarUtils.createMenuItem(menuAction)); menuItems.add(new JSeparator()); // Export Regions menuAction = new ExportRegionsMenuAction("Export Regions ...", KeyEvent.VK_E, IGV.getInstance()); menuAction.setToolTipText(UIConstants.EXPORT_REGION_TOOLTIP); menuItems.add(MenuAndToolbarUtils.createMenuItem(menuAction)); // Import Regions menuAction = new ImportRegionsMenuAction("Import Regions ...", KeyEvent.VK_I, IGV.getInstance()); menuAction.setToolTipText(IMPORT_REGION_TOOLTIP); menuItems.add(MenuAndToolbarUtils.createMenuItem(menuAction)); // Import Regions // menuAction = new ClearRegionsMenuAction("Clear Regions ...", IGV.getInstance()); // menuAction.setToolTipText(IMPORT_REGION_TOOLTIP); // menuItems.add(MenuAndToolbarUtils.createMenuItem(menuAction)); MenuAction dataMenuAction = new MenuAction("Regions", null, KeyEvent.VK_V); viewMenu = MenuAndToolbarUtils.createMenu(menuItems, dataMenuAction); return viewMenu; }
private JMenu createTracksMenu() { List<JComponent> menuItems = new ArrayList<JComponent>(); MenuAction menuAction = null; // Sort Context menuAction = new SortTracksMenuAction("Sort Tracks...", KeyEvent.VK_S, IGV.getInstance()); menuAction.setToolTipText(SORT_TRACKS_TOOLTIP); menuItems.add(MenuAndToolbarUtils.createMenuItem(menuAction)); menuAction = new GroupTracksMenuAction("Group Tracks... ", KeyEvent.VK_G, IGV.getInstance()); menuAction.setToolTipText(UIConstants.GROUP_TRACKS_TOOLTIP); menuItems.add(MenuAndToolbarUtils.createMenuItem(menuAction)); // Filter Tracks filterTracksAction = new FilterTracksMenuAction("Filter Tracks...", KeyEvent.VK_F, IGV.getInstance()); filterTracksAction.setToolTipText(UIConstants.FILTER_TRACKS_TOOLTIP); menuItems.add(MenuAndToolbarUtils.createMenuItem(filterTracksAction)); menuItems.add(new JSeparator()); // Reset Tracks menuAction = new FitDataToWindowMenuAction("Fit Data to Window", KeyEvent.VK_W, IGV.getInstance()); menuAction.setToolTipText(UIConstants.FIT_DATA_TO_WINDOW_TOOLTIP); menuItems.add(MenuAndToolbarUtils.createMenuItem(menuAction)); // Set track height menuAction = new SetTrackHeightMenuAction("Set Track Height...", KeyEvent.VK_H, IGV.getInstance()); menuAction.setToolTipText(UIConstants.SET_DEFAULT_TRACK_HEIGHT_TOOLTIP); menuItems.add(MenuAndToolbarUtils.createMenuItem(menuAction)); MenuAction dataMenuAction = new MenuAction("Tracks", null, KeyEvent.VK_K); // menuItems.add(exportData); return MenuAndToolbarUtils.createMenu(menuItems, dataMenuAction); }
private JMenu createViewMenu() { List<JComponent> menuItems = new ArrayList<JComponent>(); MenuAction menuAction = null; // Preferences menuAction = new MenuAction("Preferences...", null, KeyEvent.VK_P) { @Override public void actionPerformed(ActionEvent e) { UIUtilities.invokeOnEventThread( new Runnable() { public void run() { IGV.getInstance().doViewPreferences(); } }); } }; menuAction.setToolTipText(PREFERENCE_TOOLTIP); menuItems.add(MenuAndToolbarUtils.createMenuItem(menuAction)); menuAction = new MenuAction("Color Legends ...", null, KeyEvent.VK_H) { @Override public void actionPerformed(ActionEvent e) { (new LegendDialog(IGV.getMainFrame())).setVisible(true); } }; menuAction.setToolTipText(SHOW_HEATMAP_LEGEND_TOOLTIP); menuItems.add(MenuAndToolbarUtils.createMenuItem(menuAction)); menuItems.add(new JSeparator()); menuAction = new MenuAction("Show Name Panel", null, KeyEvent.VK_A) { @Override public void actionPerformed(ActionEvent e) { JCheckBoxMenuItem menuItem = (JCheckBoxMenuItem) e.getSource(); if (menuItem.isSelected()) { IGV.getInstance().getMainPanel().expandNamePanel(); } else { IGV.getInstance().getMainPanel().collapseNamePanel(); } IGV.getInstance().doRefresh(); } }; boolean isShowing = IGV.getInstance().getMainPanel().isExpanded(); JCheckBoxMenuItem menuItem = new JCheckBoxMenuItem(); menuItem.setSelected(isShowing); menuItem.setAction(menuAction); menuItems.add(menuItem); JMenuItem panelWidthmenuItem = new JMenuItem(); menuAction = new MenuAction("Set Name Panel Width...", null, KeyEvent.VK_A) { @Override public void actionPerformed(ActionEvent e) { MainPanel mainPanel = IGV.getInstance().getMainPanel(); String currentValue = String.valueOf(mainPanel.getNamePanelWidth()); String newValue = MessageUtils.showInputDialog("Enter track name panel width: ", currentValue); if (newValue != null) { try { Integer w = Integer.parseInt(newValue); if (w <= 0 || w == 1000) throw new NumberFormatException(); PreferenceManager.getInstance().put(PreferenceManager.NAME_PANEL_WIDTH, newValue); mainPanel.setNamePanelWidth(w); } catch (NumberFormatException ex) { MessageUtils.showErrorMessage( "Error: value must be a positive integer < 1000.", ex); } } } }; panelWidthmenuItem.setAction(menuAction); menuItems.add(panelWidthmenuItem); // Hide or Show the attribute panels boolean isShow = PreferenceManager.getInstance().getAsBoolean(PreferenceManager.SHOW_ATTRIBUTE_VIEWS_KEY); IGV.getInstance().doShowAttributeDisplay(isShow); // <= WEIRD doing IGV.getInstance() here! menuAction = new MenuAction("Show Attribute Display", null, KeyEvent.VK_A) { @Override public void actionPerformed(ActionEvent e) { JCheckBoxMenuItem menuItem = (JCheckBoxMenuItem) e.getSource(); PreferenceManager.getInstance().setShowAttributeView(menuItem.getState()); IGV.getInstance().getMainPanel().invalidate(); IGV.getInstance().doRefresh(); } }; menuItem = MenuAndToolbarUtils.createMenuItem(menuAction, isShow); menuItems.add(menuItem); menuAction = new MenuAction("Select Attributes to Show...", null, KeyEvent.VK_S) { @Override public void actionPerformed(ActionEvent e) { IGV.getInstance().doSelectDisplayableAttribute(); } }; menuAction.setToolTipText(SELECT_DISPLAYABLE_ATTRIBUTES_TOOLTIP); menuItems.add(MenuAndToolbarUtils.createMenuItem(menuAction)); menuAction = new MenuAction("Show Header Panel", null, KeyEvent.VK_A) { @Override public void actionPerformed(ActionEvent e) { JCheckBoxMenuItem menuItem = (JCheckBoxMenuItem) e.getSource(); if (menuItem.isSelected()) { IGV.getInstance().getMainPanel().restoreHeader(); } else { IGV.getInstance().getMainPanel().removeHeader(); } IGV.getInstance().doRefresh(); } }; menuItems.add(MenuAndToolbarUtils.createMenuItem(menuAction, true)); menuItems.add(new JSeparator()); menuAction = new MenuAction("Reorder Panels...", null, KeyEvent.VK_S) { @Override public void actionPerformed(ActionEvent e) { ReorderPanelsDialog dlg = new ReorderPanelsDialog(IGV.getMainFrame()); dlg.setVisible(true); } }; menuItems.add(MenuAndToolbarUtils.createMenuItem(menuAction)); menuItems.add(new JSeparator()); menuItems.add(new HistoryMenu("Go to")); // Add to IGVPanel menu MenuAction dataMenuAction = new MenuAction("View", null, KeyEvent.VK_V); viewMenu = MenuAndToolbarUtils.createMenu(menuItems, dataMenuAction); return viewMenu; }
private JMenu createGenomesMenu() { List<JComponent> menuItems = new ArrayList<JComponent>(); MenuAction menuAction = null; // Load genome menuAction = new MenuAction("Load Genome from File...", null, KeyEvent.VK_I) { @Override public void actionPerformed(ActionEvent event) { try { org.broad.igv.ui.util.ProgressMonitor monitor = new org.broad.igv.ui.util.ProgressMonitor(); igv.doLoadGenome(monitor); } catch (Exception e) { MessageUtils.showErrorMessage(e.getMessage(), e); } } }; menuAction.setToolTipText("Load a FASTA or .genome file..."); menuItems.add(MenuAndToolbarUtils.createMenuItem(menuAction)); // Load genome from URL menuAction = new LoadFromURLMenuAction(LoadFromURLMenuAction.LOAD_GENOME_FROM_URL, 0, igv); menuAction.setToolTipText("Load a FASTA or .genome file..."); menuItems.add(MenuAndToolbarUtils.createMenuItem(menuAction)); // Add genome to combo box from server menuAction = new MenuAction("Load Genome From Server...", null) { @Override public void actionPerformed(ActionEvent event) { IGV.getInstance().loadGenomeFromServerAction(); } }; menuAction.setToolTipText(LOAD_GENOME_SERVER_TOOLTIP); loadFromServerMenuItem = MenuAndToolbarUtils.createMenuItem(menuAction); menuItems.add(loadFromServerMenuItem); menuItems.add(new JSeparator()); menuAction = new MenuAction("Create .genome File...", null, KeyEvent.VK_D) { @Override public void actionPerformed(ActionEvent event) { org.broad.igv.ui.util.ProgressMonitor monitor = new org.broad.igv.ui.util.ProgressMonitor(); igv.doDefineGenome(monitor); } }; menuAction.setToolTipText(UIConstants.IMPORT_GENOME_TOOLTIP); menuItems.add(MenuAndToolbarUtils.createMenuItem(menuAction)); menuItems.add(new JSeparator()); // Add genome to combo box from server menuAction = new MenuAction("Manage Genome List...", null) { @Override public void actionPerformed(ActionEvent event) { ManageGenomesDialog dialog2 = new ManageGenomesDialog(IGV.getMainFrame()); dialog2.setVisible(true); boolean cancelled = dialog2.isCancelled(); List<GenomeListItem> removedValuesList = dialog2.getRemovedValuesList(); if (!cancelled) { GenomeManager.getInstance().buildGenomeItemList(); igv.getContentPane().getCommandBar().refreshGenomeListComboBox(); if (removedValuesList != null && !removedValuesList.isEmpty()) { try { GenomeManager.getInstance().deleteDownloadedGenomes(removedValuesList); } catch (IOException e) { MessageUtils.showErrorMessage("Error deleting genome files", e); } GenomeManager.getInstance().updateImportedGenomePropertyFile(); notifyGenomesAddedRemoved(removedValuesList, false); } } } }; menuAction.setToolTipText("Add, remove, or reorder genomes which appear in the dropdown list"); menuItems.add(MenuAndToolbarUtils.createMenuItem(menuAction)); MenuAction genomeMenuAction = new MenuAction("Genomes", null); return MenuAndToolbarUtils.createMenu(menuItems, genomeMenuAction); }
void createFileMenu() { List<JComponent> menuItems = new ArrayList<JComponent>(); MenuAction menuAction = null; // We disable certain load items when there is no genome. boolean genomeLoaded = GenomeManager.getInstance().getCurrentGenome() != null; menuItems.add(new JSeparator()); // Load menu items menuAction = new LoadFilesMenuAction("Load from File...", KeyEvent.VK_L, igv); menuAction.setToolTipText(UIConstants.LOAD_TRACKS_TOOLTIP); menuItems.add(MenuAndToolbarUtils.createMenuItem(menuAction)); menuAction = new LoadFromURLMenuAction(LoadFromURLMenuAction.LOAD_FROM_URL, KeyEvent.VK_U, igv); menuAction.setToolTipText(UIConstants.LOAD_TRACKS_TOOLTIP); menuItems.add(MenuAndToolbarUtils.createMenuItem(menuAction)); menuAction = new LoadFromServerAction("Load from Server...", KeyEvent.VK_S, igv); menuAction.setToolTipText(UIConstants.LOAD_SERVER_DATA_TOOLTIP); menuItems.add(MenuAndToolbarUtils.createMenuItem(menuAction)); menuAction = new LoadFromURLMenuAction(LoadFromURLMenuAction.LOAD_FROM_DAS, KeyEvent.VK_D, igv); menuItems.add(MenuAndToolbarUtils.createMenuItem(menuAction)); if (PreferenceManager.getInstance().getAsBoolean(PreferenceManager.DB_ENABLED)) { menuAction = new LoadFromDatabaseAction("Load from Database...", 0, igv); menuItems.add(MenuAndToolbarUtils.createMenuItem(menuAction)); } String genomeId = IGV.getInstance().getGenomeManager().getGenomeId(); if (EncodeFileBrowser.genomeSupported(genomeId)) { menuAction = new BrowseEncodeAction("Load from ENCODE...", KeyEvent.VK_E, igv); menuItems.add(MenuAndToolbarUtils.createMenuItem(menuAction)); } // Disable loading if no genome loaded. Something of an edge case if (!genomeLoaded) { for (JComponent menuItem : menuItems) { menuItem.setEnabled(false); } } menuItems.add(new JSeparator()); // Session menu items menuAction = new NewSessionMenuAction("New Session...", KeyEvent.VK_N, igv); menuAction.setToolTipText(UIConstants.NEW_SESSION_TOOLTIP); menuItems.add(MenuAndToolbarUtils.createMenuItem(menuAction)); menuAction = new OpenSessionMenuAction("Open Session...", KeyEvent.VK_O, igv); menuAction.setToolTipText(UIConstants.RESTORE_SESSION_TOOLTIP); menuItems.add(MenuAndToolbarUtils.createMenuItem(menuAction)); menuAction = new SaveSessionMenuAction("Save Session...", KeyEvent.VK_V, igv); menuAction.setToolTipText(UIConstants.SAVE_SESSION_TOOLTIP); JMenuItem saveSessionItem = MenuAndToolbarUtils.createMenuItem(menuAction); menuItems.add(saveSessionItem); saveSessionItem.setEnabled(genomeLoaded); menuItems.add(new JSeparator()); // ***** Snapshots // Snapshot Application menuAction = new MenuAction("Save Image ...", null, KeyEvent.VK_A) { @Override public void actionPerformed(ActionEvent e) { igv.saveImage(igv.getMainPanel()); } }; menuAction.setToolTipText(SAVE_IMAGE_TOOLTIP); menuItems.add(MenuAndToolbarUtils.createMenuItem(menuAction)); // TODO -- change "Exit" to "Close" for BioClipse menuItems.add(new JSeparator()); // Exit menuAction = new MenuAction("Exit", null, KeyEvent.VK_X) { @Override public void actionPerformed(ActionEvent e) { doExitApplication(); } }; menuAction.setToolTipText(EXIT_TOOLTIP); menuItems.add(MenuAndToolbarUtils.createMenuItem(menuAction)); // Empty the recent sessions list before we start to do // anything with it igv.getRecentSessionList().clear(); // Retrieve the stored session paths String recentSessions = PreferenceManager.getInstance().getRecentSessions(); if (recentSessions != null) { String[] sessions = recentSessions.split(";"); for (String sessionPath : sessions) { if (!igv.getRecentSessionList().contains(sessionPath)) { igv.getRecentSessionList().add(sessionPath); } } } if (!IGV.getInstance().getRecentSessionList().isEmpty()) { menuItems.add(new JSeparator()); // Now add menu items for (final String session : IGV.getInstance().getRecentSessionList()) { OpenSessionMenuAction osMenuAction = new OpenSessionMenuAction(session, session, IGV.getInstance()); menuItems.add(MenuAndToolbarUtils.createMenuItem(osMenuAction)); } } MenuAction fileMenuAction = new MenuAction("File", null, KeyEvent.VK_F); if (fileMenu == null) { fileMenu = MenuAndToolbarUtils.createMenu(menuItems, fileMenuAction); } else { fileMenu.removeAll(); for (JComponent item : menuItems) { fileMenu.add(item); } } }