/** * Created on Dec 2, 2008 * * Copyright 2008 Vuze, Inc. All rights reserved. * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License only. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ package com.aelitis.azureus.ui.swt.shells; import org.gudy.azureus2.ui.swt.Utils; import com.aelitis.azureus.core.cnetwork.ContentNetwork; import com.aelitis.azureus.core.messenger.ClientMessageContext; import com.aelitis.azureus.core.messenger.browser.BrowserMessage; import com.aelitis.azureus.core.messenger.browser.listeners.AbstractBrowserMessageListener; import com.aelitis.azureus.util.ContentNetworkUtils; /** * @author TuxPaper * @created Dec 2, 2008 * */ public class AuthorizeWindow { public static boolean open = false; public static boolean openAuthorizeWindow(final ContentNetwork cn) { if (open) { return false; } open = true; try { String authURL = ContentNetworkUtils.getUrl(cn, ContentNetwork.SERVICE_AUTHORIZE, new Object[] { cn.getPersistentProperty(ContentNetwork.PP_SOURCE_REF) }); BrowserWindow browserWindow = new BrowserWindow(Utils.findAnyShell(), authURL, 560, 390, false, true); final Boolean[] b = new Boolean[1]; b[0] = Boolean.FALSE; ClientMessageContext context = browserWindow.getContext(); context.addMessageListener(new AbstractBrowserMessageListener( "contentnetwork") { public void handleMessage(BrowserMessage message) { String opid = message.getOperationId(); if ("authorize".equals(opid)) { cn.setPersistentProperty(ContentNetwork.PP_AUTH_PAGE_SHOWN, Boolean.TRUE); b[0] = Boolean.TRUE; } } }); browserWindow.waitUntilClosed(); return b[0].booleanValue(); } finally { open = false; } } }