Exemple #1
0
  # 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())