Changeset bf1fa06


Ignore:
Timestamp:
May 7, 2016 3:16:38 PM (4 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
99a5b10
Parents:
16cee2a
Message:

DTG: Use actual console URL
Hide browse menu item if not supported

File:
1 edited

Legend:

Unmodified
Added
Removed
  • apps/desktopgui/src/net/i2p/desktopgui/InternalTrayManager.java

    r16cee2a rbf1fa06  
    11package net.i2p.desktopgui;
    22
     3import java.awt.Desktop;
     4import java.awt.Desktop.Action;
    35import java.awt.MenuItem;
    46import java.awt.PopupMenu;
     
    1618import net.i2p.router.RouterContext;
    1719import net.i2p.util.Log;
     20import net.i2p.util.PortMapper;
    1821
    1922/**
     
    2932    private JMenuItem _jrestartItem, _jstopItem, _jcancelItem;
    3033
     34    private static final boolean CONSOLE_ENABLED = Desktop.isDesktopSupported() &&
     35                                                   Desktop.getDesktop().isSupported(Action.BROWSE);
     36
    3137    public InternalTrayManager(RouterContext ctx, Main main, boolean useSwing) {
    3238        super(ctx, main, useSwing);
     
    3844        PopupMenu popup = new PopupMenu();
    3945       
    40         MenuItem browserLauncher = new MenuItem(_t("Launch I2P Browser"));
    41         browserLauncher.addActionListener(new ActionListener() {
    42             @Override
    43             public void actionPerformed(ActionEvent arg0) {
    44                 new SwingWorker<Object, Object>() {
    45                     @Override
    46                     protected Object doInBackground() throws Exception {
    47                         return null;
    48                     }
    49                    
    50                     @Override
    51                     protected void done() {
    52                         try {
    53                             I2PDesktop.browse("http://localhost:7657");
    54                         } catch (BrowseException e1) {
    55                             log.log(Log.WARN, "Failed to open browser!", e1);
    56                         }   
    57                     }
    58                 }.execute();
    59             }
    60         });
     46        MenuItem browserLauncher;
     47        if (CONSOLE_ENABLED) {
     48            browserLauncher = new MenuItem(_t("Launch I2P Browser"));
     49            browserLauncher.addActionListener(new ActionListener() {
     50                @Override
     51                public void actionPerformed(ActionEvent arg0) {
     52                    new SwingWorker<Object, Object>() {
     53                        @Override
     54                        protected Object doInBackground() throws Exception {
     55                            return null;
     56                        }
     57                       
     58                        @Override
     59                        protected void done() {
     60                            launchBrowser();
     61                        }
     62                    }.execute();
     63                }
     64            });
     65        } else {
     66            browserLauncher = null;
     67        }
    6168
    6269        PopupMenu desktopguiConfigurationLauncher = new PopupMenu(_t("Configure I2P System Tray"));
     
    155162        });
    156163
    157         popup.add(browserLauncher);
    158         popup.addSeparator();
     164        if (CONSOLE_ENABLED) {
     165            popup.add(browserLauncher);
     166            popup.addSeparator();
     167        }
    159168        desktopguiConfigurationLauncher.add(configSubmenu);
    160169        popup.add(desktopguiConfigurationLauncher);
     
    178187        JPopupMenu popup = new JPopupMenu();
    179188       
    180         JMenuItem browserLauncher = new JMenuItem(_t("Launch I2P Browser"));
    181         browserLauncher.addActionListener(new ActionListener() {
    182             @Override
    183             public void actionPerformed(ActionEvent arg0) {
    184                 new SwingWorker<Object, Object>() {
    185                     @Override
    186                     protected Object doInBackground() throws Exception {
    187                         return null;
    188                     }
    189                    
    190                     @Override
    191                     protected void done() {
    192                         try {
    193                             I2PDesktop.browse("http://localhost:7657");
    194                         } catch (BrowseException e1) {
    195                             log.log(Log.WARN, "Failed to open browser!", e1);
    196                         }   
    197                     }
    198                 }.execute();
    199             }
    200         });
     189        JMenuItem browserLauncher;
     190        if (CONSOLE_ENABLED) {
     191            browserLauncher = new JMenuItem(_t("Launch I2P Browser"));
     192            browserLauncher.addActionListener(new ActionListener() {
     193                @Override
     194                public void actionPerformed(ActionEvent arg0) {
     195                    new SwingWorker<Object, Object>() {
     196                        @Override
     197                        protected Object doInBackground() throws Exception {
     198                            return null;
     199                        }
     200                       
     201                        @Override
     202                        protected void done() {
     203                            launchBrowser();
     204                        }
     205                    }.execute();
     206                }
     207            });
     208        } else {
     209            browserLauncher = null;
     210        }
    201211
    202212        JMenu desktopguiConfigurationLauncher = new JMenu(_t("Configure I2P System Tray"));
     
    295305        });
    296306
    297         popup.add(browserLauncher);
    298         popup.addSeparator();
     307        if (CONSOLE_ENABLED) {
     308            popup.add(browserLauncher);
     309            popup.addSeparator();
     310        }
    299311        desktopguiConfigurationLauncher.add(configSubmenu);
    300312        popup.add(desktopguiConfigurationLauncher);
     
    352364        }
    353365    }
     366
     367    /**
     368     * Build the console URL with info from the port mapper,
     369     * and launch the browser at it.
     370     *
     371     * Modified from I2PTunnelHTTPClientBase.
     372     * TODO perhaps move this to a new PortMapper method.
     373     *
     374     * @since 0.9.26
     375     */
     376    private void launchBrowser() {
     377        String unset = "*unset*";
     378        PortMapper pm = _context.portMapper();
     379        String httpHost = pm.getActualHost(PortMapper.SVC_CONSOLE, unset);
     380        String httpsHost = pm.getActualHost(PortMapper.SVC_HTTPS_CONSOLE, unset);
     381        int httpPort = pm.getPort(PortMapper.SVC_CONSOLE, 7657);
     382        int httpsPort = pm.getPort(PortMapper.SVC_HTTPS_CONSOLE, -1);
     383        boolean httpsOnly = httpsPort > 0 && httpHost.equals(unset) && !httpsHost.equals(unset);
     384        String url;
     385        if (httpsOnly) {
     386            url = "https://" + httpsHost + ':' + httpsPort + '/';
     387        } else {
     388            if (httpHost.equals(unset))
     389                httpHost = "127.0.0.1";
     390            url = "http://" + httpHost + ':' + httpPort + '/';
     391        }
     392        try {
     393            I2PDesktop.browse(url);
     394        } catch (BrowseException e1) {
     395            log.log(Log.WARN, "Failed to open browser!", e1);
     396        }   
     397    }
    354398}
Note: See TracChangeset for help on using the changeset viewer.