Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package org.limewire.ui.swing.home;
- import java.awt.Dimension;
- import java.awt.GridBagConstraints;
- import java.awt.GridBagLayout;
- import java.awt.event.ComponentAdapter;
- import java.awt.event.ComponentEvent;
- import java.io.IOException;
- import java.net.URL;
- import javax.swing.BorderFactory;
- import javax.swing.JScrollPane;
- import javax.swing.ScrollPaneConstants;
- import javax.swing.event.HyperlinkEvent;
- import javax.swing.event.HyperlinkListener;
- import org.jdesktop.swingx.JXPanel;
- import org.limewire.concurrent.FutureEvent;
- import org.limewire.core.api.connection.GnutellaConnectionManager;
- import org.limewire.inject.LazySingleton;
- import org.limewire.listener.EventListener;
- import org.limewire.listener.SwingEDTEvent;
- import org.limewire.ui.swing.browser.Browser;
- import org.limewire.ui.swing.browser.BrowserUtils;
- import org.limewire.ui.swing.browser.UriAction;
- import org.limewire.ui.swing.components.HTMLPane;
- import org.limewire.ui.swing.components.HTMLPane.LoadResult;
- import org.limewire.ui.swing.nav.NavCategory;
- import org.limewire.ui.swing.nav.Navigator;
- import org.limewire.ui.swing.util.NativeLaunchUtils;
- import org.limewire.ui.swing.util.SwingUtils;
- import com.google.inject.Inject;
- /** Journey **/
- import com.codebrig.journey.JourneyBrowserView;
- import javax.swing.*;
- import java.awt.*;
- import java.awt.event.WindowAdapter;
- import java.awt.event.WindowEvent;
- /** The main home page.*/
- @LazySingleton
- public class HomePanel extends JXPanel {
- private static final String DEFAULT_URL = "file:///" + System.getProperty("user.dir") + "/lib/WSHome.xhtml";
- private final Browser browser;
- private final HTMLPane fallbackBrowser;
- private final GnutellaConnectionManager gnutellaConnectionManager;
- private boolean loadedOnce = false;
- private int retryCount = 0;
- private boolean firstRequest = true;
- private long initialLoadTime = -1;
- @Inject
- public HomePanel(final Navigator navigator,
- GnutellaConnectionManager gnutellaConnectionManager) {
- this.gnutellaConnectionManager = gnutellaConnectionManager;
- setPreferredSize(new Dimension(500, 500));
- setLayout(new GridBagLayout());
- GridBagConstraints gbc = new GridBagConstraints();
- gbc.fill = GridBagConstraints.BOTH;
- gbc.weightx = 1;
- gbc.weighty = 1;
- public class JourneyBrowser {
- public static void main(String[] args) {
- JourneyBrowserView browser = new JourneyBrowserView("https://google.com");
- JFrame frame = new JFrame();
- frame.getContentPane().add(browser, BorderLayout.CENTER);
- frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
- frame.addWindowListener(new WindowAdapter() {
- @Override
- public void windowClosing(WindowEvent e) {
- browser.getCefApp().dispose();
- frame.dispose();
- }
- });
- frame.setTitle("Journey");
- frame.setSize(1000, 600);
- frame.setVisible(true);
- }
- }
- JScrollPane scroller = new JScrollPane(fallbackBrowser,
- ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
- ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
- scroller.setBorder(BorderFactory.createEmptyBorder());
- add(scroller, gbc);
- }
- }
- /** Notification that a page finished loading. */
- private void pageLoadFinished(boolean success) {
- if(!success) {
- reloadDefaultUrlIfPossibleAndNeeded();
- }
- }
- /**
- * Reloads the default URL, with some extra parameters, if we need to.
- */
- private void reloadDefaultUrlIfPossibleAndNeeded() {
- // based on:
- // * if the browser is showing
- // * if the first request was already sent succesfully
- // * if there's no active request already
- // * if the retryCount is below 5 (we don't want to hammer)
- // * if we tried to load atleast once
- // * if the last request was successful
- // * if our current strength indicates we're online
- if (isShowing() && firstRequest && !isRequestInProgress()
- && retryCount < 5 && loadedOnce && !isLastRequestSuccessful()
- && gnutellaConnectionManager.getConnectionStrength().isOnline()) {
- retryCount++;
- long delay = System.currentTimeMillis() - initialLoadTime;
- load(DEFAULT_URL + "?rd=" + delay + "&rc=" + retryCount);
- }
- }
- /** Returns true if the last request was succesful. */
- private boolean isLastRequestSuccessful() {
- if(MozillaInitialization.isInitialized()) {
- return browser.isLastRequestSuccessful();
- } else {
- return browser.isLastRequestSuccessful();
- }
- }
- public void loadDefaultUrl() {
- load(DEFAULT_URL);
- }
- public void load(String url) {
- loadedOnce = true;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement