⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 placelabstumblergui.java

📁 一个基于PlaceLab的室内和室外的智能导航系统
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
		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 + -