Changeset 545


Ignore:
Timestamp:
11/27/13 16:18:26 (10 years ago)
Author:
ngw8
Message:

Added basic buttons to JfxBrowser, URL bar half works, others don't work at all. Removed code that explicitly resized the webview.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/expeditee/items/widgets/JfxBrowser.java

    r544 r545  
    11package org.expeditee.items.widgets;
    22
     3import java.awt.BorderLayout;
    34import java.awt.Color;
    45import java.awt.Component;
    5 import java.awt.FlowLayout;
     6import java.awt.event.ActionEvent;
     7import java.awt.event.ActionListener;
    68import java.awt.event.ComponentEvent;
    79import java.awt.event.ComponentListener;
    810import java.io.File;
    911import java.lang.reflect.Constructor;
    10 import java.lang.reflect.InvocationTargetException;
    1112import java.lang.reflect.Method;
    1213import java.net.URL;
     
    1516import java.util.List;
    1617
     18import javax.swing.JButton;
    1719import javax.swing.JPanel;
     20import javax.swing.JTextField;
     21import javax.swing.JToolBar;
     22import javax.swing.UIManager;
    1823
    1924import org.expeditee.gui.FreeItems;
     
    125130                Object webview;
    126131                Object jfxPanel;
     132                JfxBrowser owner;
    127133
    128134                /**
     
    131137                 */
    132138                public WebBrowserPanel(final String url) {
     139
     140                        super(new BorderLayout());
    133141                        this.addComponentListener(this);
    134142                        try {
    135143                                jfxPanel = JFXPanel.newInstance();
    136144
     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
    137168                                this.add((Component) jfxPanel);
    138 
    139                                 // Removing the gap between the top of the panel and the JFXPanel
    140                                 ((FlowLayout) this.getLayout()).setVgap(0);
    141169
    142170                                // Setting bg color to be the same as bg color of widgets when they're being dragged/resized
     
    163191                        try {
    164192                                this.webview = WebView.newInstance();
    165                                 WebViewSetPrefSize.invoke(this.webview, this.getWidth(), this.getHeight());
    166193
    167194                                Object scene = SceneConstructor.newInstance(this.webview);
     
    242269                @Override
    243270                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
    253272                }
    254273
     
    260279        public JfxBrowser(Text source, String[] args) {
    261280                // 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);
    265282                _browser = (WebBrowserPanel) _swingComponent;
     283                _browser.owner = this;
    266284        }
    267285
Note: See TracChangeset for help on using the changeset viewer.