summaryrefslogtreecommitdiffstats
path: root/src/org.gluster.storage.management.console/src/org/gluster/storage/management/console/dialogs/GlusterSupportDialog.java
blob: bd9ceb045432258f6acd3d0b7ad62613e5798e15 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
/*******************************************************************************
 * Copyright (c) 2006-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 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 General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see
 * <http://www.gnu.org/licenses/>.
 *******************************************************************************/
package org.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 org.gluster.storage.management.console.utils.GUIHelper;


public class GlusterSupportDialog extends FormDialog {

	private final GUIHelper guiHelper = GUIHelper.getInstance();
	private FormToolkit toolkit;
	private ScrolledForm form;
	
	public GlusterSupportDialog(Shell shell) {
		super(shell);
	}
	
	@Override
	protected void configureShell(Shell newShell) {
		super.configureShell(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());
	}
	
}