--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sysmodelmgr/com.symbian.smt.gui/src/com/symbian/smt/gui/smtwidgets/ModelLabelsWidget.java Thu Mar 11 19:08:43 2010 +0200
@@ -0,0 +1,449 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// ${file_name}
+//
+//
+
+package com.symbian.smt.gui.smtwidgets;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+
+import com.symbian.smt.gui.Helper;
+import com.symbian.smt.gui.PersistentDataStore;
+import com.symbian.smt.gui.smtwidgets.ValidModelEvent.Type;
+
+public class ModelLabelsWidget extends Composite implements
+ ValidModelObservable {
+ private Combo distributionTextCombo;
+ private Text modelVersionText;
+ private Text systemVersionText;
+ private Text copyrightTextText;
+ private Combo modelVersionTextCombo;
+ private Text modelNameText;
+ private Text systemNameText;
+ private ArrayList<ValidModelDefinedListener> listeners = new ArrayList<ValidModelDefinedListener>();
+
+ /**
+ * Creates a ModelLabelsWidget composite object
+ *
+ * @return void
+ */
+ public ModelLabelsWidget(final Composite parent, int style) {
+ super(parent, style);
+
+ this.setLayout(new FillLayout());
+
+ final Composite gridLayoutComposite = new Composite(this, SWT.NONE);
+ final GridLayout gridLayout = new GridLayout();
+ gridLayout.numColumns = 4;
+ gridLayoutComposite.setLayout(gridLayout);
+
+ final Label systemNameLabel = new Label(gridLayoutComposite, SWT.NONE);
+ systemNameLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false,
+ false));
+ systemNameLabel.setText("System Name");
+
+ systemNameText = new Text(gridLayoutComposite, SWT.BORDER);
+ systemNameText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
+ false));
+
+ final Label systemVersionLabel = new Label(gridLayoutComposite,
+ SWT.NONE);
+ systemVersionLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER,
+ false, false));
+ systemVersionLabel.setText("System Version");
+
+ systemVersionText = new Text(gridLayoutComposite, SWT.BORDER);
+ systemVersionText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER,
+ true, false));
+
+ final Label modelNameLabel = new Label(gridLayoutComposite, SWT.NONE);
+ modelNameLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false,
+ false));
+ modelNameLabel.setText("Model Name");
+
+ modelNameText = new Text(gridLayoutComposite, SWT.BORDER);
+ modelNameText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
+ false));
+
+ final Label modelVersionLabel = new Label(gridLayoutComposite, SWT.NONE);
+ modelVersionLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER,
+ false, false));
+ modelVersionLabel.setText("Model Version");
+
+ modelVersionText = new Text(gridLayoutComposite, SWT.BORDER);
+ modelVersionText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
+ false));
+
+ final Label modelVersionTextLabel = new Label(gridLayoutComposite,
+ SWT.NONE);
+ modelVersionTextLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER,
+ false, false));
+ modelVersionTextLabel.setText("Model Version Text");
+
+ modelVersionTextCombo = new Combo(gridLayoutComposite, SWT.NONE);
+ modelVersionTextCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER,
+ true, false));
+
+ final Label distributionTextLabel = new Label(gridLayoutComposite,
+ SWT.NONE);
+ distributionTextLabel.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER,
+ false, false));
+ distributionTextLabel.setText("Distribution Text");
+
+ distributionTextCombo = new Combo(gridLayoutComposite, SWT.NONE);
+ distributionTextCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER,
+ true, false));
+
+ final Label copyrightTextLabel = new Label(gridLayoutComposite,
+ SWT.NONE);
+ copyrightTextLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER,
+ false, false));
+ copyrightTextLabel.setText("Copyright Text");
+
+ copyrightTextText = new Text(gridLayoutComposite, SWT.BORDER);
+ copyrightTextText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER,
+ true, false));
+ }
+
+ /**
+ * @see com.symbian.smt.gui.smtwidgets.ValidModelObservable#addModelListener(ValidModelDefinedListener)
+ */
+ public void addModelListener(ValidModelDefinedListener listener) {
+ synchronized (listeners) {
+ listeners.add(listener);
+ }
+ }
+
+ private void checkDistributionText() {
+ if (listeners.size() > 0) {
+ Boolean modelDefined = true;
+ String message = "";
+ Type type = Type.SUCCESS;
+
+ String text = distributionTextCombo.getText().trim();
+
+ if (text.length() > 0) {
+ // TODO:BRS:Specify any validation here, such as what to do with
+ // the empty string
+ // if (xxx) {
+ // modelDefined = false;
+ // message =
+ // "";
+ // type = Type.ERROR;
+ // }
+ }
+
+ ValidModelEvent event = new ValidModelEvent(modelDefined, message,
+ type);
+
+ for (ValidModelDefinedListener listener : listeners) {
+ listener.validModelDefined(event);
+ }
+ }
+ }
+
+ private void checkModelVersionText() {
+ if (listeners.size() > 0) {
+ Boolean modelDefined = true;
+ String message = "";
+ Type type = Type.SUCCESS;
+
+ String text = modelVersionTextCombo.getText().trim();
+
+ if (text.length() > 0) {
+ // TODO:BRS:Specify any validation here, such as what to do with
+ // the empty string
+ // if (xxx) {
+ // modelDefined = false;
+ // message =
+ // "";
+ // type = Type.ERROR;
+ // }
+ }
+
+ ValidModelEvent event = new ValidModelEvent(modelDefined, message,
+ type);
+
+ for (ValidModelDefinedListener listener : listeners) {
+ listener.validModelDefined(event);
+ }
+ }
+ }
+
+ /**
+ * Returns the copyright text
+ *
+ * @return String
+ */
+ public String getCopyrightText() {
+ return copyrightTextText.getText();
+ }
+
+ /**
+ * Returns the distribution text values
+ *
+ * @return String[]
+ */
+ public String[] getDistributionTexts() {
+ List<String> items = Helper.toListOfStrings(distributionTextCombo
+ .getItems());
+ String text = distributionTextCombo.getText().trim();
+
+ if (text.length() > 0) {
+ if (!items.contains(text)) {
+ items.add(0, text);
+ }
+ }
+
+ return items.toArray(new String[items.size()]);
+ }
+
+ /**
+ * Returns the model name
+ *
+ * @return String
+ */
+ public String getModelName() {
+ return modelNameText.getText();
+ }
+
+ /**
+ * Returns the text for the model version
+ *
+ * @return String
+ */
+ public String getModelVersion() {
+ return modelVersionText.getText();
+ }
+
+ /**
+ * Returns the model version text values
+ *
+ * @return String[]
+ */
+ public String[] getModelVersionTexts() {
+ List<String> items = Helper.toListOfStrings(modelVersionTextCombo
+ .getItems());
+ String text = modelVersionTextCombo.getText().trim();
+
+ if (text.length() > 0) {
+ if (!items.contains(text)) {
+ items.add(0, text);
+ }
+ }
+
+ return items.toArray(new String[items.size()]);
+ }
+
+ /**
+ * Returns the selected distribution text value
+ *
+ * @return String
+ */
+ public String getSelectedDistributionText() {
+ return distributionTextCombo.getText();
+ }
+
+ /**
+ * Returns the selected model version text value
+ *
+ * @return String
+ */
+ public String getSelectedModelVersionText() {
+ return modelVersionTextCombo.getText();
+ }
+
+ /**
+ * Returns the system name
+ *
+ * @return String
+ */
+ public String getSystemName() {
+ return systemNameText.getText();
+ }
+
+ /**
+ * Returns the text for the system version
+ *
+ * @return String
+ */
+ public String getSystemVersion() {
+ return systemVersionText.getText();
+ }
+
+ public void initialiseDistributionText(PersistentDataStore store) {
+ distributionTextCombo.setItems(store.getDistributionTexts());
+ distributionTextCombo.setText(store.getSelectedDistributionText());
+
+ distributionTextCombo.addModifyListener(new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ checkDistributionText();
+ }
+ });
+ }
+
+ public void initialiseModelVersionText(PersistentDataStore store) {
+ modelVersionTextCombo.setItems(store.getModelVersionTexts());
+ modelVersionTextCombo.setText(store.getSelectedModelVersionText());
+
+ modelVersionTextCombo.addModifyListener(new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ checkModelVersionText();
+ }
+ });
+ }
+
+ /**
+ * @see com.symbian.smt.gui.smtwidgets.ValidModelObservable#removeModelListener(ValidModelDefinedListener)
+ */
+ public void removeModelListener(ValidModelDefinedListener listener) {
+ synchronized (listeners) {
+ listeners.remove(listener);
+ }
+ }
+
+ /**
+ * Sets the text for the copyright text
+ *
+ * @param copyrightText
+ * String to be used for the copyright text
+ * @return void
+ */
+ public void setCopyrightText(String copyrightText) {
+ copyrightTextText.setText(copyrightText);
+ }
+
+ /**
+ * Sets the values for the distribution text combo
+ *
+ * @param distributionText
+ * String array to be used for the distribution text values
+ * @return void
+ */
+ public void setDistributionTexts(String[] distributionTexts) {
+ distributionTextCombo.setItems(distributionTexts);
+ }
+
+ /**
+ * Sets the text for the model name
+ *
+ * @param modelName
+ * String to be used for the model name
+ * @return void
+ */
+ public void setModelName(String modelName) {
+ modelNameText.setText(modelName);
+ }
+
+ /**
+ * Sets the text for the model version
+ *
+ * @param modelVersion
+ * String to be used for the model version
+ * @return void
+ */
+ public void setModelVersion(String modelVersion) {
+ modelVersionText.setText(modelVersion);
+ }
+
+ /**
+ * Sets the items for the model version text combo
+ *
+ * @param modelVersionTexts
+ * values of the model version text
+ * @return void
+ */
+ public void setModelVersionTexts(String[] modelVersionTexts) {
+ modelVersionTextCombo.setItems(modelVersionTexts);
+ }
+
+ /**
+ * Sets the selected distribution text value
+ *
+ * @param distributionText
+ * The distribution text value to set as selected.
+ * @return void
+ */
+ public void setSelectedDistributionText(String distributionText) {
+ String[] items = distributionTextCombo.getItems();
+ int index = 0;
+
+ for (String item : items) {
+ if (item.equals(distributionText)) {
+ break;
+ }
+
+ index++;
+ }
+
+ distributionTextCombo.select(index);
+ }
+
+ /**
+ * Sets the selected model version text value
+ *
+ * @param modelVersionText
+ * The model version text value to set as selected.
+ * @return void
+ */
+ public void setSelectedModelVersionText(String modelVersionText) {
+ String[] items = modelVersionTextCombo.getItems();
+ int index = 0;
+
+ for (String item : items) {
+ if (item.equals(modelVersionText)) {
+ break;
+ }
+
+ index++;
+ }
+
+ modelVersionTextCombo.select(index);
+ }
+
+ /**
+ * Sets the text for the system name
+ *
+ * @param systemName
+ * String to be used for the system name
+ * @return void
+ */
+ public void setSystemName(String systemName) {
+ systemNameText.setText(systemName);
+ }
+
+ /**
+ * Sets the text for the system version
+ *
+ * @param systemVersion
+ * String to be used for the system version
+ * @return void
+ */
+ public void setSystemVersion(String systemVersion) {
+ systemVersionText.setText(systemVersion);
+ }
+}