Changeset 545
- Timestamp:
- 11/27/13 16:18:26 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/expeditee/items/widgets/JfxBrowser.java
r544 r545 1 1 package org.expeditee.items.widgets; 2 2 3 import java.awt.BorderLayout; 3 4 import java.awt.Color; 4 5 import java.awt.Component; 5 import java.awt.FlowLayout; 6 import java.awt.event.ActionEvent; 7 import java.awt.event.ActionListener; 6 8 import java.awt.event.ComponentEvent; 7 9 import java.awt.event.ComponentListener; 8 10 import java.io.File; 9 11 import java.lang.reflect.Constructor; 10 import java.lang.reflect.InvocationTargetException;11 12 import java.lang.reflect.Method; 12 13 import java.net.URL; … … 15 16 import java.util.List; 16 17 18 import javax.swing.JButton; 17 19 import javax.swing.JPanel; 20 import javax.swing.JTextField; 21 import javax.swing.JToolBar; 22 import javax.swing.UIManager; 18 23 19 24 import org.expeditee.gui.FreeItems; … … 125 130 Object webview; 126 131 Object jfxPanel; 132 JfxBrowser owner; 127 133 128 134 /** … … 131 137 */ 132 138 public WebBrowserPanel(final String url) { 139 140 super(new BorderLayout()); 133 141 this.addComponentListener(this); 134 142 try { 135 143 jfxPanel = JFXPanel.newInstance(); 136 144 145 // Toolbar (that can't be dragged) to hold the nav buttons, url bar, etc 146 JToolBar toolBar = new JToolBar(); 147 toolBar.setFloatable(false); 148 149 150 JButton backButton = new JButton("Back"); 151 toolBar.add(backButton); 152 153 JButton forwardButton = new JButton("Forward"); 154 toolBar.add(forwardButton); 155 156 JTextField urlField = new JTextField(url); 157 toolBar.add(urlField); 158 159 urlField.addActionListener(new ActionListener() { 160 @Override 161 public void actionPerformed(ActionEvent e) { 162 owner.navigate(e.getActionCommand()); 163 } 164 }); 165 166 add(toolBar, BorderLayout.PAGE_START); 167 137 168 this.add((Component) jfxPanel); 138 139 // Removing the gap between the top of the panel and the JFXPanel140 ((FlowLayout) this.getLayout()).setVgap(0);141 169 142 170 // Setting bg color to be the same as bg color of widgets when they're being dragged/resized … … 163 191 try { 164 192 this.webview = WebView.newInstance(); 165 WebViewSetPrefSize.invoke(this.webview, this.getWidth(), this.getHeight());166 193 167 194 Object scene = SceneConstructor.newInstance(this.webview); … … 242 269 @Override 243 270 public void componentResized(ComponentEvent e) { 244 // Webview is initialized in a 'run later' thread, so must check that it has actually been created before 245 // trying to resize 246 if (webview != null) { 247 try { 248 WebViewSetPrefSize.invoke(this.webview, this.getWidth(), this.getHeight()); 249 } catch (Exception e1) { 250 e1.printStackTrace(); 251 } 252 } 271 // BorderLayout on the JPanel removes the need for explicitly resizing anything here 253 272 } 254 273 … … 260 279 public JfxBrowser(Text source, String[] args) { 261 280 // Initial page is either the page stored in the arguments (if there is one stored) or Google 262 263 // super(source, new WebBrowserPanel((args != null && args.length > 0) ? args[0] : "http://google.com"), -1, 500, -1, -1, 300, -1); 264 super(source, new WebBrowserPanel(args[0]), -1, 500, -1, -1, 300, -1); 281 super(source, new WebBrowserPanel((args != null && args.length > 0) ? args[0] : "http://google.com"), -1, 500, -1, -1, 300, -1); 265 282 _browser = (WebBrowserPanel) _swingComponent; 283 _browser.owner = this; 266 284 } 267 285
Note:
See TracChangeset
for help on using the changeset viewer.