From 747535b8750020b3783891da56fa098c2d6bab9b Mon Sep 17 00:00:00 2001 From: Dhandapani Date: Fri, 19 Aug 2011 16:19:43 +0530 Subject: Gluster support contact dialog added --- .../plugin.xml | 19 +++ .../console/ApplicationActionBarAdvisor.java | 4 +- .../management/console/actions/SupportAction.java | 48 +++++++ .../console/dialogs/GlusterSupportDialog.java | 139 +++++++++++++++++++++ 4 files changed, 209 insertions(+), 1 deletion(-) create mode 100644 src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/SupportAction.java create mode 100644 src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/dialogs/GlusterSupportDialog.java (limited to 'src') 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 @@ + + + + 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. + * 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 + * . + *******************************************************************************/ +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. + * 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 + * . + *******************************************************************************/ +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 = "
" + +// "Call 1-800-805-5215
" + +// "or
" + +// "Email:support@gluster.com" + +// "
"; +// 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 = "
" + + "The following features of GlusterFS will soon be supported in upcoming releases of Gluster Management Console " + + "
  • Geo-replication
  • " + + "
  • Directory Quota
  • " + + "
  • Top and Profile
  • " + + "
  • POSIX ACLs Support

  • " + + "More information about these features can be found at
    " + + "http://www.gluster.com/community/documentation/index.php/Gluster_3.2:_What_is_New_in_this_Release" + + "
    "; + 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()); + } + +} -- cgit