📄 desktop.java
字号:
dispTracker.open(); } catch (Exception e) { Activator.log.error("Failed to create tracker", e); } bundleSelModel.addBundleSelectionListener(this); Activator.getBC().addBundleListener(this); Activator.getBC().addFrameworkListener(this); if(Activator.getBC() != Activator.getTargetBC()) { Activator.getTargetBC().addBundleListener(this); Activator.getTargetBC().addFrameworkListener(this); } consoleSwing.getJComponent().requestFocus(); } JButton toolStartBundles; JButton toolStopBundles; JButton toolUpdateBundles; JButton toolUninstallBundles; void setRemote(boolean b) { menuRemote.setEnabled(b); buttonRemote.setEnabled(b); } JToolBar makeToolBar() { return new JToolBar() { { add(toolStartBundles = new JButton(openIcon) { { addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ev) { addBundle(); } }); setToolTipText(Strings.get("menu_openbundles")); } }); add(new JButton(openURLIcon) { { addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ev) { addBundleURL(); } }); setToolTipText(Strings.get("menu_openbundleurl")); } }); add(toolStartBundles = new JButton(saveIcon) { { addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ev) { save(); } }); setToolTipText(Strings.get("menu_save")); } }); add(buttonRemote = new JButton(connectIcon) { { addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ev) { doConnect(); } }); setToolTipText(Strings.get("menu_remotefw")); } }); // add(new JToolBar.Separator()); add(toolStartBundles = new JButton(startIcon) { { addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ev) { Bundle[] bl = getSelectedBundles(); for(int i = 0; i < bl.length; i++) { Bundle b = bl[i]; startBundle(b); } } }); setToolTipText(Strings.get("tt_startbundle")); } }); add(toolStopBundles = new JButton(stopIcon) { { addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ev) { if(isEnabled()) { stopBundles(getSelectedBundles()); } } }); setToolTipText(Strings.get("tt_stopbundle")); } }); add(toolUpdateBundles = new JButton(updateIcon) { { addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ev) { Bundle[] bl = getSelectedBundles(); for(int i = 0; i < bl.length; i++) { updateBundle(bl[i]); } } }); setToolTipText(Strings.get("tt_updatebundle")); } }); add(toolUninstallBundles = new JButton(uninstallIcon) { { addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ev) { Bundle[] bl = getSelectedBundles(); for(int i = 0; i < bl.length; i++) { uninstallBundle(bl[i], true); } } }); setToolTipText(Strings.get("tt_uninstallbundle")); } }); add(viewSelection = makeViewSelectionButton()); StartLevel sls = (StartLevel)slTracker.getService(); if(null == sls) { add(new JLabel(Strings.get("nostartlevel.label"))); } else { add(makeStartLevelSelector()); add(levelBox); } } }; } JComponent makeStartLevelSelector() { StartLevel sls = (StartLevel)slTracker.getService(); Activator.log.debug("has start level service"); JPanel panel = new JPanel(); panel.add(new JLabel(Strings.get("startlevel.label"))); levelBox = new JComboBox(); updateLevelItems(); levelBox.setSelectedIndex(sls.getStartLevel() - levelMin); levelBox.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ev) { if(levelBox.getSelectedIndex() == -1) { return; } // Delay actual setting to avoid flipping thru // levels quickly. SwingUtilities.invokeLater(new Runnable() { public void run() { Thread t = new Thread() { public void run() { try { Thread.sleep(500); setFWStartLevel(); } catch (Exception e) { Activator.log.error("Failed to set start level"); } } }; t.start(); } }); } }); panel.add(levelBox); return panel; } void setFWStartLevel() { int level = levelBox.getSelectedIndex() + levelMin; StartLevel sls = (StartLevel)slTracker.getService(); if(sls != null) { if(sls.getStartLevel() == level) { return; } } int myLevel = level; try { myLevel = sls.getBundleStartLevel(Activator.getTargetBC().getBundle()); } catch (IllegalArgumentException ignored) { } boolean bOK = true; if(level < myLevel) { bOK = false; Object[] options = {Strings.get("yes"), Strings.get("cancel")}; int n =JOptionPane .showOptionDialog(frame, Strings.get("q_stopdesktop"), Strings.get("msg_stopdesktop"), JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[1]); if(n == 0) { bOK = true; } } if(bOK) { setStartLevel(level); } else { if(sls != null) { levelBox.setSelectedIndex(sls.getStartLevel() - levelMin); } } } JButton makeViewSelectionButton() { // view selection button JButton viewButton = new JButton(viewIcon); makeViewPopupMenu(); viewButton.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { showPopup(e); } public void mouseReleased(MouseEvent e) { showPopup(e); } private void showPopup(MouseEvent e) { if (viewPopupMenu != null) { Component comp = e.getComponent(); viewPopupMenu.show(comp, 0, comp.getSize().height); } } }); // end view selection button return viewButton; } JPopupMenu viewPopupMenu; void makeViewPopupMenu() { viewPopupMenu = new JPopupMenu(); for(Iterator it = displayMap.keySet().iterator(); it.hasNext(); ) { ServiceReference sr = (ServiceReference)it.next(); SwingBundleDisplayer disp = (SwingBundleDisplayer)displayMap.get(sr); final String key = (String)sr.getProperty(SwingBundleDisplayer.PROP_NAME); JMenuItem item = new JMenuItem(key); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ev) { bundlePanel.showTab(key); } }); viewPopupMenu.add(item); } } void updateLevelItems() { StartLevel sls = (StartLevel)slTracker.getService(); if(sls != null) { levelMax = Math.max(levelMax, sls.getStartLevel()); } levelItems = new String[levelMax - levelMin + 1]; Bundle[] bundles = Activator.getTargetBC().getBundles(); Object selObj = null; for(int i = levelMin; i <= levelMax; i++) { StringBuffer sb = new StringBuffer(); int level = i; boolean bOverflow = false; for(int j = 0; j < bundles.length; j++) { try { if(sls != null && sls.getBundleStartLevel(bundles[j]) == level) { if(sb.length() > 0) { sb.append(", "); } String name = Util.getBundleName(bundles[j]); // Text.replace(Util.shortLocation(bundles[j].getLocation()), ".jar", ""); sb.append(name); } } catch (IllegalArgumentException e) { } } String txt = sb.toString(); int maxLen = 50; if(txt.length() > maxLen) { txt = txt.substring(0, maxLen) + "..."; } levelItems[i - levelMin] = i + " " + txt; if(i == sls.getStartLevel()) { selObj = levelItems[i - levelMin]; } } if(levelBox != null) { DefaultComboBoxModel model = new DefaultComboBoxModel(levelItems); /* if(selObj != null) { System.out.println("model with selected " + selObj); model.setSelectedItem(selObj); } */ levelBox.setModel(model); } } void setStartLevel(final int level) { Thread t = new Thread() { public void run() { StartLevel sls = (StartLevel)slTracker.getService(); if(null != sls) { sls.setStartLevel(level); } } }; t.start(); } void updateStartLevel() { if(slTracker == null) { return; } StartLevel sls = (StartLevel)slTracker.getService(); if(sls == null) { return; } updateLevelItems(); if(levelBox != null) { levelBox.setSelectedIndex(sls.getStartLevel() - levelMin); } updateBundleViewSelections(); } // items handling start level stuff. Only used if a StartLevel // service is available at startup Object[] levelItems; JComboBox levelBox = null; int levelMin = 1; int levelMax = 20; int baActive = 0; int baInstalled = 0; int other = 0; Bundle[] bl = new Bundle[0]; boolean stopActive() { return baActive == bl.length || baActive + other == bl.length; } boolean startActive() { return baInstalled == bl.length || baInstalled + other== bl.length; } public void setSelected(Bundle b) { bundleSelModel.clearSelection(); bundleSelModel.setSelected(b.getBundleId(), true); updateStatusBar(); } public void toggleSelected(Bundle b) { bundleSelModel.setSelected(b.getBundleId(), !bundleSelModel.isSelected(b.getBundleId())); updateStatusBar(); } public boolean isSelected(Bundle b) { return bundleSelModel.isSelected(b.getBundleId()); } void updateBundleViewSelections() { Bundle[] bl = getSelectedBundles(); // displayHTML.selectionUpdated(bl);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -