diff options
author | Shireesh Anjal <anjalshireesh@gmail.com> | 2011-08-19 04:07:54 -0700 |
---|---|---|
committer | Shireesh Anjal <anjalshireesh@gmail.com> | 2011-08-19 04:07:54 -0700 |
commit | 91828e674deeb6b7979bd3ace6029698763c02ce (patch) | |
tree | f4b0ed9a3acad237c60d4610d27af3a0e42a0352 | |
parent | f75bf5f45ffc3bf62646b1cfd7e4503cccc81ab3 (diff) | |
parent | 747535b8750020b3783891da56fa098c2d6bab9b (diff) |
Merge pull request #253 from Dhandapani/master
Gluster support contact dialog added
4 files changed, 209 insertions, 1 deletions
diff --git a/src/com.gluster.storage.management.console/plugin.xml b/src/com.gluster.storage.management.console/plugin.xml index cf3c8eb3..90fa2c5b 100644 --- a/src/com.gluster.storage.management.console/plugin.xml +++ b/src/com.gluster.storage.management.console/plugin.xml @@ -1182,6 +1182,25 @@ </groupMarker> </menu> </actionSet> + <actionSet + description="Set of Actions in "Edit" menu" + id="com.gluster.storage.management.console.actionsets.help" + label="Help Action Set" + visible="true"> + <action + allowLabelUpdate="false" + class="com.gluster.storage.management.console.actions.SupportAction" + definitionId="com.gluster.storage.management.console.commands.Support" + id="com.gluster.storage.management.console.actions.SupportAction" + label="&Support" + menubarPath="help/helpEnd" + pulldown="false" + retarget="false" + state="false" + style="push" + tooltip="Support Information"> + </action> + </actionSet> </extension> <extension point="org.eclipse.ui.perspectiveExtensions"> diff --git a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/ApplicationActionBarAdvisor.java b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/ApplicationActionBarAdvisor.java index e49e1275..e8d2dd8c 100644 --- a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/ApplicationActionBarAdvisor.java +++ b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/ApplicationActionBarAdvisor.java @@ -23,6 +23,7 @@ import org.eclipse.jface.action.ICoolBarManager; import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.action.Separator; +import org.eclipse.swt.SWT; import org.eclipse.ui.IWorkbenchActionConstants; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.actions.ActionFactory; @@ -70,7 +71,8 @@ public class ApplicationActionBarAdvisor extends ActionBarAdvisor { register(aboutAction); helpContentsAction = ActionFactory.HELP_CONTENTS.create(window); - helpContentsAction.setText("&Contents"); + helpContentsAction.setText("&Management Console Help"); + helpContentsAction.setAccelerator(SWT.F1); //helpContentsAction.setImageDescriptor(newImage) register(helpContentsAction); } diff --git a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/SupportAction.java b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/SupportAction.java new file mode 100644 index 00000000..5d0bc833 --- /dev/null +++ b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/SupportAction.java @@ -0,0 +1,48 @@ +/******************************************************************************* + * Copyright (c) 2011 Gluster, Inc. <http://www.gluster.com> + * This file is part of Gluster Management Console. + * + * Gluster Management Console is free software; you can redistribute it and/or + * modify it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Gluster Management Console 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 Affero General Public License + * for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see + * <http://www.gnu.org/licenses/>. + *******************************************************************************/ +package com.gluster.storage.management.console.actions; + +import org.eclipse.jface.action.IAction; + +import com.gluster.storage.management.console.dialogs.GlusterSupportDialog; + +/** + * + */ +public class SupportAction extends AbstractActionDelegate { + + /* (non-Javadoc) + * @see com.gluster.storage.management.console.actions.AbstractActionDelegate#performAction(org.eclipse.jface.action.IAction) + */ + @Override + protected void performAction(IAction action) { + GlusterSupportDialog dialog = new GlusterSupportDialog(getShell()); + dialog.create(); + dialog.getShell().setSize(770, 430); + dialog.open(); + } + + /* (non-Javadoc) + * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#dispose() + */ + @Override + public void dispose() { + + } +} diff --git a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/dialogs/GlusterSupportDialog.java b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/dialogs/GlusterSupportDialog.java new file mode 100644 index 00000000..a2659650 --- /dev/null +++ b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/dialogs/GlusterSupportDialog.java @@ -0,0 +1,139 @@ +/******************************************************************************* + * Copyright (c) 2011 Gluster, Inc. <http://www.gluster.com> + * This file is part of Gluster Management Console. + * + * Gluster Management Console is free software; you can redistribute it and/or + * modify it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Gluster Management Console 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 Affero General Public License + * for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see + * <http://www.gnu.org/licenses/>. + *******************************************************************************/ +package com.gluster.storage.management.console.dialogs; + +import java.net.MalformedURLException; +import java.net.URL; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.forms.FormDialog; +import org.eclipse.ui.forms.IManagedForm; +import org.eclipse.ui.forms.events.HyperlinkAdapter; +import org.eclipse.ui.forms.events.HyperlinkEvent; +import org.eclipse.ui.forms.widgets.FormText; +import org.eclipse.ui.forms.widgets.FormToolkit; +import org.eclipse.ui.forms.widgets.ScrolledForm; + +import com.gluster.storage.management.console.utils.GUIHelper; + +public class GlusterSupportDialog extends FormDialog { + + private final GUIHelper guiHelper = GUIHelper.getInstance(); + private FormToolkit toolkit; + private ScrolledForm form; + private Composite parent; + + public GlusterSupportDialog(Shell shell) { + super(shell); + } + + @Override + protected void configureShell(Shell newShell) { + super.configureShell(newShell); + this.parent = newShell; + newShell.setText("Gluster Management Console - Support Information"); + } + + protected void createFormContent(IManagedForm mform) { + form = mform.getForm(); + toolkit = mform.getToolkit(); + form.getBody().setLayout(new GridLayout()); + createSections(); + } + + private void createSections() { + contactGlusterSupportSection(); + commingSoonSection(); + form.layout(); + form.getParent().layout(); + } + + + private void contactGlusterSupportSection() { + Composite section = guiHelper.createSection(form, toolkit, "Contact Gluster Support", null, 1, false); + + FormText formText = toolkit.createFormText(section, false); + toolkit.createLabel(section, "Call 1-800-805-5215", SWT.NONE); + toolkit.createLabel(section, "or", SWT.NONE); + toolkit.createLabel(section, "Email:support@gluster.com", SWT.NONE); +// String supportInfo = "<form>" + +// "Call 1-800-805-5215<br />" + +// "or<br />" + +// "Email:support@gluster.com" + +// "</form>"; +// formText.setText(supportInfo, true, true); + GridData layoutData = new GridData(); + layoutData.widthHint = 730; + layoutData.grabExcessHorizontalSpace = true; + formText.setLayoutData(layoutData); + } + + private void commingSoonSection() { + Composite section = guiHelper.createSection(form, toolkit, "Coming Soon", null, 7, false); + FormText formText = toolkit.createFormText(section, true); + String commingSoonInfo = "<form>" + + "The following features of GlusterFS will soon be supported in upcoming releases of Gluster Management Console " + + "<li>Geo-replication</li>" + + "<li>Directory Quota</li>" + + "<li>Top and Profile</li>" + + "<li>POSIX ACLs Support</li><br />" + + "More information about these features can be found at<br /> " + + "http://www.gluster.com/community/documentation/index.php/Gluster_3.2:_What_is_New_in_this_Release" + + "</form>"; + formText.setText(commingSoonInfo, true, true); + GridData layoutData = new GridData(); + layoutData.widthHint = 700; + layoutData.grabExcessHorizontalSpace = true; + formText.setLayoutData(layoutData); + formText.addHyperlinkListener(new HyperlinkAdapter() { + public void linkActivated(HyperlinkEvent e) { + System.out.println("Link activated: " + e.getHref()); + try { + PlatformUI.getWorkbench().getBrowserSupport().getExternalBrowser() + .openURL(new URL((String) e.getHref())); + } catch (PartInitException e1) { + e1.printStackTrace(); + } catch (MalformedURLException e1) { + e1.printStackTrace(); + } + } + }); + } + + @Override + protected Control createButtonBar(Composite parent) { + return null; + } + /** + * Overriding to make sure that the dialog is centered in screen + */ + @Override + protected void initializeBounds() { + super.initializeBounds(); + guiHelper.centerShellInScreen(getShell()); + } + +} |