# Following from http://www.eclipse.org/articles/Article-Swing-SWT-Integration/ # To reduce flicker on resize: System.setProperty("sun.awt.noerasebackground", "false") # To get Swing look and feel to match SWT: UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()) browser = Browser(shell, SWT.RESIZE) #browser.setText("hello world!") # TODO get the url to lineup a better way browser.setUrl('file:///Users/krismz/Software/delv/examples/java_cars/lineup.js/demo/index.html') bgd = GridData(SWT.FILL, SWT.FILL, True, True) #bgd.widthHint = 1500 ##bgd.heightHint = 1200 ##bgd.widthHint = 1200 #bgd.heightHint = 800 bgd.horizontalSpan = 3 browser.setLayoutData(bgd) browser2 = Browser(shell, SWT.RESIZE) browser2.setUrl('file:///Users/krismz/Software/delv/examples/java_cars/parallel_coords.html') pgd = GridData(SWT.FILL, SWT.FILL, True, False) #pgd.widthHint = 804 #pgd.heightHint = 504 browser2.setLayoutData(pgd) browser3 = Browser(shell, SWT.RESIZE) jggplot = JRI_ggplot(None, Rengine(["--vanilla"], False, None)) jggplot.Rengine.eval('mtcars$cyl <- factor(mtcars$cyl,levels=c(4,6,8),labels=c("4cyl","6cyl","8cyl"))') #browser3.setUrl(jggplot.qplot("cyl","mpg","mtcars") browser3.setUrl(jggplot.qplot("wt","mpg","mtcars", 'geom=c("point", "smooth"), method="lm", formula=y~x, color=cyl, main="Regression of MPG on Weight", xlab="Weight", ylab="Miles per Gallon"'))
def createPartControl(self, parent): sash = SashForm(parent, SWT.HORIZONTAL) local_file = File("C:/temp/demofile/map.html"); browser = Browser(parent, SWT.NONE) class ThisControlListener(ControlListener): def controlResized(self, e): # Use Javascript to set the browser width and height browser.execute( "document.getElementById('map_canvas').style.width=%i;" % (browser.getSize().x - 20)) browser.execute( "document.getElementById('map_canvas').style.height=%i;" % (browser.getSize().y - 20)) def controlMoved(self, e): pass browser.addControlListener(ThisControlListener()) # Called by JavaScript class __CustomFunction(BrowserFunction): def __init__(self, browser, name): BrowserFunction.__init__(self, browser, name) self.data = CustomFunctionData(None) self.data.browser(browser) def function(self, arguments): lat = arguments[0] lng = arguments[1] MapView.locations.add("%s : %s" % (lat, lng)) self.data.browser.execute( "document.getElementById('map_canvas').style.width=%i;" % (self.data.browser.getSize().x - 20)) self.data.browser.execute( "document.getElementById('map_canvas').style.height=%i;" % (self.data.browser.getSize().y - 20)) return None __CustomFunction(browser, "theJavaFunction") c = Composite(sash, SWT.BORDER) c.setLayout(GridLayout(2, True)) where_button = Button(c, SWT.PUSH) where_button.setText("Where Am I ?") class __Where_SelectionAdapter(SelectionAdapter): def widgetSelected(self, e): lat = browser.evaluate("return map.getCenter().lat();") lng = browser.evaluate("return map.getCenter().lng();") MapView.locations.add("%s : %s" % (lat,lng)) where_button.addSelectionListener(__Where_SelectionAdapter()) add_button = Button(c, SWT.PUSH) add_button.setText("Add Marker") class __Add_SelectionAdapter(SelectionAdapter): def widgetSelected(self, e): browser.evaluate('createMarker') add_button.addSelectionListener(__Add_SelectionAdapter()) locations = List(c, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL) grid_data = GridData(SWT.FILL, SWT.FILL, True, True) grid_data.horizontalSpan = 2 locations.setLayoutData(grid_data) browser.setUrl(local_file.toURI().toString())