package org.limewire.ui.swing.warnings; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.Rectangle; import java.awt.event.ActionEvent; import javax.swing.JLayeredPane; import net.miginfocom.swing.MigLayout; import org.jdesktop.application.Resource; import org.jdesktop.swingx.JXButton; import org.limewire.core.api.library.SharedFileListManager; import org.limewire.core.settings.SharingSettings; import org.limewire.ui.swing.action.AbstractAction; import org.limewire.ui.swing.components.HTMLLabel; import org.limewire.ui.swing.components.MultiLineLabel; import org.limewire.ui.swing.components.OverlayPopupPanel; import org.limewire.ui.swing.components.decorators.ButtonDecorator; import org.limewire.ui.swing.mainframe.GlobalLayeredPane; import org.limewire.ui.swing.painter.BorderPainter.AccentType; import org.limewire.ui.swing.util.GuiUtils; import org.limewire.ui.swing.util.I18n; import com.google.inject.Inject; public class DocumentWarningPanel extends OverlayPopupPanel { @Resource private Color backgroundColor; @Resource private Font font; @Resource private Color fontColor; @Resource private Color linkFontColor; @Inject public DocumentWarningPanel(final SharedFileListManager shareListManager, @GlobalLayeredPane JLayeredPane layeredPane, ButtonDecorator buttonDecorator) { super(layeredPane); GuiUtils.assignResources(this); setLayout(new MigLayout("nogrid, insets 10")); setSize(320, 190); setPreferredSize(new Dimension(320, 190)); setMaximumSize(new Dimension(320, 190)); setMinimumSize(new Dimension(320, 190)); setBackground(backgroundColor); final String learnMoreUrl = "http://www.limewire.com/client_redirect/?page=documentsSharing"; HTMLLabel htmlLabel = new HTMLLabel( I18n .tr( "<html><body>Warning: You are sharing Documents with the world. These Documents may contain personal information. <a href=\"{0}\">learn more</a></body></html>", learnMoreUrl)); htmlLabel.setEditable(false); htmlLabel.setOpaque(false); htmlLabel.setFocusable(false); htmlLabel.setHtmlFont(font); htmlLabel.setHtmlForeground(fontColor); htmlLabel.setHtmlLinkForeground(linkFontColor); add(htmlLabel, "wrap"); MultiLineLabel sharingLabel = new MultiLineLabel(I18n .tr("Do you want to keep sharing Documents with the world?")); sharingLabel.setForeground(fontColor); sharingLabel.setFont(font); add(sharingLabel, "gaptop 20, wrap"); JXButton continueSharingButton = new JXButton(new AbstractAction(I18n .tr("Continue Sharing")) { @Override public void actionPerformed(ActionEvent e) { setVisible(false); SharingSettings.WARN_SHARING_DOCUMENTS_WITH_WORLD.setValue(false); } }); buttonDecorator.decorateDarkFullImageButton(continueSharingButton, AccentType.SHADOW); JXButton unshareAllButton = new JXButton(new AbstractAction(I18n.tr("Unshare All")) { @Override public void actionPerformed(ActionEvent e) { setVisible(false); SharingSettings.WARN_SHARING_DOCUMENTS_WITH_WORLD.setValue(true); shareListManager.removeDocumentsFromPublicLists(); } }); buttonDecorator.decorateDarkFullImageButton(unshareAllButton, AccentType.SHADOW); continueSharingButton.setPreferredSize(new Dimension(150, 25)); continueSharingButton.setMinimumSize(new Dimension(150, 25)); unshareAllButton.setPreferredSize(new Dimension(150, 25)); unshareAllButton.setMinimumSize(new Dimension(150, 25)); add(continueSharingButton, "alignx center, gaptop 15"); add(unshareAllButton, "wrap"); resize(); } @Override public void resize() { Rectangle parentBounds = layeredPane.getBounds(); int w = getPreferredSize().width; int h = getPreferredSize().height; setLocation(parentBounds.width - w, parentBounds.height - h); } }