📄 placelabstumblergui.java
字号:
if(!BrowserControl.isMacPlatform()) { MenuItem exitItem = new MenuItem(fileMenu, SWT.PUSH); exitItem.setText("Exit"); exitItem.setAccelerator(SWT.ALT | SWT.F4); exitItem.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { shutdown(); } public void widgetDefaultSelected(SelectionEvent e) { shutdown(); } }); } fileItem.setMenu(fileMenu); MenuItem editItem = new MenuItem(bar, SWT.CASCADE); editItem.setText("Edit"); Menu editMenu = new Menu(bar); MenuItem gpsPrefItem = new MenuItem(editMenu, SWT.PUSH); gpsPrefItem.setText("Reset GPS Preferences ..."); gpsPrefItem.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { resetGPS(); } public void widgetDefaultSelected(SelectionEvent e) { resetGPS(); } }); editItem.setMenu(editMenu); buildMapMenus(); shell.setBounds(shell.getBounds()); } protected void buildMapMenus() { int commandKey = SWT.CONTROL; if(BrowserControl.isMacPlatform()) commandKey = SWT.COMMAND; TrackedMapView mapView = null; WadData wad; // find out what mapView is in the front if(mainTabFolder.getSelectionIndex() == 0) { mapView = mapView1; wad = wad1; } else { mapView = mapView2; wad = wad2; } // cut out early and don't have View, map or Place menus if there isn't anything // loaded yet if(wad == null || mapView == null || mapView.getMapData() == null) return; // build view menu MenuItem viewItem = new MenuItem(bar, SWT.CASCADE); viewItem.setText("View"); viewItem.setAccelerator(commandKey | 'V'); Menu viewMenu = new Menu(bar); // MenuItem beaconShowItem = new MenuItem(viewMenu, SWT.CHECK); beaconShowItem.setText("Show Beacons"); beaconShowItem.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { toggleBeacons(); } public void widgetDefaultSelected(SelectionEvent e) { toggleBeacons(); } }); beaconShowItem.setSelection(mapView1.getShowBeacons()); // MenuItem particlesShowItem = new MenuItem(viewMenu, SWT.CHECK); particlesShowItem.setText("Show Particles"); particlesShowItem.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { toggleParticles(); } public void widgetDefaultSelected(SelectionEvent e) { toggleParticles(); } });// particlesShowItem.setSelection(mapView1.getShowParticles()); MenuItem autoScrollItem = new MenuItem(viewMenu, SWT.CHECK); autoScrollItem.setText("Auto Scroll Map"); autoScrollItem.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { toggleAutoScroll(); tmvBtnScroll.setSelection(!tmvBtnScroll.getSelection()); } public void widgetDefaultSelected(SelectionEvent e) { toggleAutoScroll(); tmvBtnScroll.setSelection(!tmvBtnScroll.getSelection()); } }); autoScrollItem.setSelection(mapView1.getAutoScroll()); // MenuItem autoZoomItem = new MenuItem(viewMenu, SWT.CHECK); autoZoomItem.setText("Auto Zoom Map"); autoZoomItem.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { toggleAutoZoom(); } public void widgetDefaultSelected(SelectionEvent e) { toggleAutoZoom(); } }); autoZoomItem.setSelection(mapView1.getAutoZoom()); // MenuItem zoomInItem = new MenuItem(viewMenu, SWT.PUSH); zoomInItem.setText("Zoom In"); zoomInItem.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { mapView1.zoomIn(); } public void widgetDefaultSelected(SelectionEvent e) { mapView1.zoomIn(); } }); // MenuItem zoomOutItem = new MenuItem(viewMenu, SWT.PUSH); zoomOutItem.setText("Zoom Out"); zoomOutItem.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { mapView1.zoomOut(); } public void widgetDefaultSelected(SelectionEvent e) { mapView1.zoomOut(); } }); viewItem.setMenu(viewMenu); // build map menu MenuItem mapItem = new MenuItem(bar, SWT.CASCADE); mapItem.setText("Maps"); Menu mapMenu = new Menu(bar); Enumeration e = wad.getMaps().keys(); String selected = mapView1.getMapData().getName(); MenuItem select = null; while(e.hasMoreElements()) { String name = (String) e.nextElement(); MenuItem item = new MenuItem(mapMenu, SWT.RADIO); if(select == null && name.equals(selected)) { select = item; item.setSelection(true); } item.setText(name); item.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { mapAction(e); } public void widgetDefaultSelected(SelectionEvent e) { mapAction(e); } }); } if(select != null) mapMenu.setDefaultItem(select); MenuItem placeItem = new MenuItem(bar, SWT.CASCADE); placeItem.setText("Places"); Menu placeMenu = new Menu(bar); placeItems = new Vector(); Hashtable defaultPlaceSets = wad.getDefaultPlaceSets(); e = wad.getPlaceSetNames(); while(e.hasMoreElements()) { String name = (String)e.nextElement(); MenuItem item = new MenuItem(placeMenu, SWT.CHECK); if(defaultPlaceSets.containsKey(name)) item.setSelection(true); item.setText(name); item.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { placeAction(e); } public void widgetDefaultSelected(SelectionEvent e) { placeAction(e); } }); placeItems.addElement(item); } mapItem.setMenu(mapMenu); placeItem.setMenu(placeMenu); } protected void mapAction(SelectionEvent e) { TrackedMapView mapView; WadData wad; if(mainTabFolder.getSelectionIndex() == 0) { mapView = mapView1; wad = wad1; } else { mapView = mapView2; wad = wad2; } MenuItem item = (MenuItem)e.getSource(); String mapName = item.getText(); MapBacking map = wad.getMap(mapName); if(mapName != null) { //shell.setText(mapName); mapView.setMapData(map); // despite that this runs for all the mapviews, if a mapview hasn't had its // view changed, there shouldn't be anything happening for it down the line // so its ok. updateAllBeaconIcons(); } tmvGroup.layout(); } protected void placeAction(SelectionEvent e) { TrackedMapView mapView; WadData wad; if(mainTabFolder.getSelectionIndex() == 0) { mapView = mapView1; wad = wad1; } else { mapView = mapView2; wad = wad2; } Hashtable selectedPlaces = new Hashtable(); Enumeration i = placeItems.elements(); while(i.hasMoreElements()) { MenuItem mi = (MenuItem)i.nextElement(); if(mi.getSelection()) { Hashtable placeSet = wad.getPlaceSet(mi.getText()); selectedPlaces.put(mi.getText(), placeSet); } } mapView1.setPlaceSets(selectedPlaces); } protected void toggleBeacons() { TrackedMapView mapView; WadData wad; if(mainTabFolder.getSelectionIndex() == 0) { mapView = mapView1; wad = wad1; } else { mapView = mapView2; wad = wad2; } mapView.setShowBeacons(!mapView1.getShowBeacons()); } protected void toggleAutoScroll() { TrackedMapView mapView; WadData wad; if(mainTabFolder.getSelectionIndex() == 0) { mapView = mapView1; wad = wad1; } else { mapView = mapView2; wad = wad2; } mapView1.setAutoScroll(!mapView.getAutoScroll()); buildMenu(); } protected void toggleAutoZoom() { TrackedMapView mapView; WadData wad; if(mainTabFolder.getSelectionIndex() == 0) { mapView = mapView1; wad = wad1; } else { mapView = mapView2; wad = wad2; } mapView1.setAutoZoom(!mapView1.getAutoZoom()); buildMenu(); } protected void toggleParticles() { TrackedMapView mapView; WadData wad; if(mainTabFolder.getSelectionIndex() == 0) { mapView = mapView1; wad = wad1; } else { mapView = mapView2; wad = wad2; }// mapView1.setShowParticles(!mapView1.getShowParticles()); } protected void loadWad() { TrackedMapView mapView; WadData wad; String path = askUserForFile(); if(path == null) return; //if(mainTabFolder.getSelectionIndex() == 0) { mapView = mapView1; wad = wad1; //} else { // mapView = mapView2; // wad = wad2; //} if(mapView == null) { this.buildMapViews(); //if(mainTabFolder.getSelectionIndex() == 0) { mapView = mapView1; wad = wad1; //} else { // mapView = mapView2; // wad = wad2; //} } loadWad(path, null, mapView); } protected void loadWad(String path, String mapName, TrackedMapView view) { WadData temp; if(path == null) { path = askUserForFile(); // if path is still null, user doesn't want to // load a wad. so be it. if(path == null) { buildMenu(); return; } } try { temp = new WadData(path); } catch (Exception e) { errorDialog("Couldn't load mapwad", e); return; } MapBacking mapBack = null; if (mapName != null) { mapBack = temp.getMap(mapName); if (mapBack == null) { // print this stuff on the console since its only going to result // from incorrect cmdline args Logger.println("Map: " + mapName + " not found. Available maps are:\n", Logger.LOW); for (Enumeration en = temp.getMaps().keys(); en.hasMoreElements();) { Logger.println(" - " + en.nextElement().toString(), Logger.LOW); } //System.exit(1); Logger.println("Choosing an arbitrary map instead", Logger.LOW); mapName = null; } if(mapName == null) mapBack = temp.getDefaultMap(); } Hashtable defaultPlaces = temp.getDefaultPlaceSets(); if(mapBack == null) { // render the first map if there is no default try { mapBack = (MapBacking)temp.getMaps().elements().nextElement(); } catch (java.util.NoSuchElementException e) { errorDialog("That mapwad doesn't have any maps!"); return; } } if(mapBack == null) { errorDialog("That mapwad doesn't have any maps!"); return; } if(defaultPlaces == null) defaultPlaces = new Hashtable(); //if(view == mapView1) { wad1 = temp; mapView1.setVisible(true); //} //else wad2 = temp; view.setMapData(mapBack); view.setPlaceSets(defaultPlaces); //this.createBeaconIcons(view); view.setVisible(true); if(mapView2 != null && mapView1 != null) { if(view == mapView1 && mapView2.getMapData() == null) { //errorDialog("entered view==mapView1 && mapView2.getMapData() == null"); mapView2.setMapData(mapBack); mapView2.setPlaceSets(defaultPlaces); mapView2.setVisible(true); tmvBigLabel.setVisible(false); wad2 = temp; //this.createBeaconIcons(mapView2); } else if(view == mapView2 && mapView1.getMapData() == null) { mapView1.setMapData(mapBack); mapView1.setPlaceSets(defaultPlaces); mapView1.setVisible(true); wad1 = temp; //this.createBeaconIcons(mapView1); } } buildMenu(); } protected void shutdown() { display.close(); } protected class BeaconIcons { public Hashtable icons; public BeaconIcons() { icons = new Hashtable(); } public void addBeaconPlace(BeaconPlace place) { icons.put(place.mapView, place); } public void updateAll(boolean active) { for(Enumeration e = icons.elements(); e.hasMoreElements();) { BeaconPlace bp = (BeaconPlace)e.nextElement(); bp.updateLocation(); bp.setActive(active); } } public BeaconPlace getBeaconPlace(MapView forMapView) { return (BeaconPlace)icons.get(forMapView); } } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -