diff --git a/resources/images/images.properties b/resources/images/images.properties index 11d85c320..3e385b81e 100644 --- a/resources/images/images.properties +++ b/resources/images/images.properties @@ -2,6 +2,7 @@ service.gui.SIP_COMMUNICATOR_LOGO=resources/images/logo/sc_logo16x16.png service.gui.SIP_COMMUNICATOR_LOGO_45x45=resources/images/logo/sc_logo_45x45.png service.gui.SIP_COMMUNICATOR_LOGO_64x64=resources/images/logo/sc_logo_64x64.png +service.gui.SIP_COMMUNICATOR_LOGO_128x128=resources/images/logo/sc_logo_128x128.png service.gui.MAIN_WINDOW_BACKGROUND= service.gui.AUTH_WINDOW_BACKGROUND=resources/images/impl/gui/common/passWindowBackground.png service.gui.ABOUT_WINDOW_BACKGROUND=resources/images/impl/gui/common/aboutWindowBackground.png diff --git a/resources/images/logo/sc_logo_128x128.png b/resources/images/logo/sc_logo_128x128.png new file mode 100644 index 000000000..c73cf719d Binary files /dev/null and b/resources/images/logo/sc_logo_128x128.png differ diff --git a/resources/languages/resources.properties b/resources/languages/resources.properties index 81bb9e2a2..0f2248c1f 100644 --- a/resources/languages/resources.properties +++ b/resources/languages/resources.properties @@ -154,6 +154,7 @@ service.gui.DISCONNECTED_STATUS=Disconnected service.gui.DND_STATUS=Do not disturb service.gui.DO_NOT_ASK_AGAIN=Don't ask again service.gui.DO_NOT_SHOW_AGAIN=Don't show this message again +service.gui.DOWNLOAD_NOW=&Download now service.gui.DRAG_FOR_SHARING=Drag here anything you want to share... service.gui.DURATION=duration service.gui.EDIT=&Edit @@ -240,6 +241,11 @@ service.gui.INVITE_CONTACT_TO_CALL=Invite contacts to call service.gui.INVITE_REASON=Invite reason service.gui.IS_CALLING=is calling... service.gui.IS_NOW={0} is now {1} +service.gui.JITSI_WARNING=SIP Communicator has recently been renamed to Jitsi.
\ + If you want your version to remain up-to-date, then please download Jitsi now.\ +

We are sorry for any inconvenience that this may be causing you.\ +

The Jitsi Dev Team +service.gui.JITSI_WARNING_TITLE=SIP Communicator becomes Jitsi service.gui.JOIN=&Join service.gui.JOIN_AS=J&oin as service.gui.CLOSE_CHAT_ROOM_DIALOG=C&lose @@ -340,6 +346,7 @@ service.gui.RECEIVED=received service.gui.RECONNECTION_LIMIT_EXCEEDED=You have have been disconnecting and reconnecting to the server too fast. The following account: User name: {0}, Server name: {1} is temporarily banned and would have to wait a bit before trying to login again. service.gui.REFERRED_STATUS=Referred service.gui.REJECT=&Reject +service.gui.REMIND_ME_LATER=Remind me later service.gui.REMEMBER_PASSWORD=Remember password service.gui.REMOVE=&Remove service.gui.REMOVE_ACCOUNT=&Remove account @@ -472,6 +479,7 @@ service.gui.SECURITY_WARNING=Security warning service.gui.SECURITY_ERROR=Security error service.gui.SPEED=Speed: service.gui.SILENT_MEMBER=silent member +service.gui.UPDATE=Update service.gui.JANUARY=Jan service.gui.FEBRUARY=Feb diff --git a/src/net/java/sip/communicator/plugin/branding/BrandingActivator.java b/src/net/java/sip/communicator/plugin/branding/BrandingActivator.java index a370e47c4..4febc06f0 100644 --- a/src/net/java/sip/communicator/plugin/branding/BrandingActivator.java +++ b/src/net/java/sip/communicator/plugin/branding/BrandingActivator.java @@ -65,6 +65,11 @@ public void start(BundleContext bc) throws Exception else welcomeWindow = null; +// TO BE ENABLED ON APPLICATION RENAME. +// if (getResources().getSettingsString( +// "service.gui.APPLICATION_NAME").equals("SIP Communicator")) +// new JitsiWarningWindow(null).setVisible(true); + bundleContext.addBundleListener(new BundleListener() { diff --git a/src/net/java/sip/communicator/plugin/branding/JitsiWarningWindow.java b/src/net/java/sip/communicator/plugin/branding/JitsiWarningWindow.java new file mode 100644 index 000000000..d8980a3de --- /dev/null +++ b/src/net/java/sip/communicator/plugin/branding/JitsiWarningWindow.java @@ -0,0 +1,184 @@ +/* + * SIP Communicator, the OpenSource Java VoIP and Instant Messaging client. + * + * Distributable under LGPL license. + * See terms of license at gnu.org. + */ +package net.java.sip.communicator.plugin.branding; + +import java.awt.*; +import java.awt.event.*; + +import javax.swing.*; + +import net.java.sip.communicator.service.browserlauncher.*; +import net.java.sip.communicator.service.resources.*; +import net.java.sip.communicator.util.*; +import net.java.sip.communicator.util.swing.*; + +import org.osgi.framework.*; + +/** + * The JitsiWarningWindow. + * + * @author Yana Stamcheva + */ +public class JitsiWarningWindow + extends SIPCommDialog +{ + /** + * Creates an JitsiWarningWindow by specifying the parent frame + * owner. + * @param owner the parent owner + */ + public JitsiWarningWindow(Frame owner) + { + super(owner, false); + + ResourceManagementService resources = BrandingActivator.getResources(); + + this.setTitle( + resources.getI18NString("service.gui.UPDATE") + + " " + resources.getSettingsString( + "service.gui.APPLICATION_NAME")); + + setModal(false); + setDefaultCloseOperation(DISPOSE_ON_CLOSE); + + StyledHTMLEditorPane textArea = new StyledHTMLEditorPane(); + textArea.setContentType("text/html"); + textArea.setText(resources.getI18NString("service.gui.JITSI_WARNING")); + textArea.setOpaque(false); + textArea.setEditable(false); + + JLabel titleLabel = new JLabel( + resources.getI18NString("service.gui.JITSI_WARNING_TITLE")); + titleLabel.setFont(titleLabel.getFont().deriveFont(Font.BOLD, 14f)); + titleLabel.setAlignmentX(Component.LEFT_ALIGNMENT); + titleLabel.setMaximumSize(new Dimension(400, 50)); + + JPanel textPanel = new TransparentPanel(); + textPanel.setLayout(new BoxLayout(textPanel, BoxLayout.Y_AXIS)); + + textPanel.add(titleLabel); + textPanel.add(Box.createRigidArea(new Dimension(20, 20))); + textPanel.add(textArea); + + JButton downloadButton = new JButton( + resources.getI18NString("service.gui.DOWNLOAD_NOW")); + JButton remindButton = new JButton( + resources.getI18NString("service.gui.REMIND_ME_LATER")); + + this.getRootPane().setDefaultButton(downloadButton); + + downloadButton.setMnemonic( + resources.getI18nMnemonic("service.gui.DOWNLOAD_NOW")); + downloadButton.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + openURL(getDownloadLink()); + dispose(); + } + }); + remindButton.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + dispose(); + } + }); + + JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT)); + buttonPanel.add(remindButton); + buttonPanel.add(downloadButton); + buttonPanel.setOpaque(false); + + JPanel mainPanel = new TransparentPanel(new BorderLayout(10, 10)); + mainPanel.add(new JLabel(resources.getImage( + "service.gui.SIP_COMMUNICATOR_LOGO_128x128")), BorderLayout.WEST); + mainPanel.add(textPanel, BorderLayout.CENTER); + mainPanel.add(buttonPanel, BorderLayout.SOUTH); + mainPanel.setPreferredSize(new Dimension(500, 200)); + mainPanel.setBorder( + BorderFactory.createEmptyBorder(20, 20, 20, 20)); + + getContentPane().add(mainPanel); + + this.pack(); + this.setResizable(false); + + setLocationRelativeTo(getParent()); + + this.getRootPane().getActionMap().put("close", new CloseAction()); + + InputMap imap = this.getRootPane().getInputMap( + JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); + + imap.put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "close"); + + if(OSUtils.IS_MAC) + { + imap.put( + KeyStroke.getKeyStroke(KeyEvent.VK_W, InputEvent.META_DOWN_MASK), + "close"); + imap.put( + KeyStroke.getKeyStroke(KeyEvent.VK_W, InputEvent.CTRL_DOWN_MASK), + "close"); + } + } + + /** + * The action invoked when user presses Escape key. + */ + private class CloseAction extends UIAction + { + public void actionPerformed(ActionEvent e) + { + setVisible(false); + dispose(); + } + } + + /** + * Opens the given url in a new browser window. + * @param url the url to open + */ + private void openURL(String url) + { + ServiceReference serviceReference = BrandingActivator + .getBundleContext().getServiceReference( + BrowserLauncherService.class.getName()); + + if (serviceReference != null) + { + BrowserLauncherService browserLauncherService + = (BrowserLauncherService) BrandingActivator + .getBundleContext().getService( + serviceReference); + + browserLauncherService.openURL(url); + } + } + + /** + * Indicates if the application name should be shown. + * + * @return true if the application name should be shown, + * false - otherwise + */ + private String getDownloadLink() + { + if (OSUtils.IS_WINDOWS) + return "http://download.sip-communicator.org/nightly/windows/"; + else if (OSUtils.IS_MAC) + return "http://download.sip-communicator.org/nightly/macosx/"; + else if (OSUtils.IS_LINUX) + return "http://download.sip-communicator.org/nightly/linux/"; + + return "http://download.jitsi.org"; + } + + @Override + protected void close(boolean escaped) {} +}