/* * Copyright (C) 2012 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.motorola.studio.android.emulator.device.instance.options; import java.util.ArrayList; import java.util.List; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Combo; import org.eclipse.swt.widgets.Text; import org.eclipse.swt.widgets.Widget; /** * Bean that represents an startup option * */ public class StartupOption { // Checked status (whether the startup options is being used or not) private boolean checked; // Widget that represents the checked status in the UI private Widget checkedWidget; // Startup option name private String name; // Startup option user-friendly name private String userFriendlyName; // Startup option description (user-friendly description) private String description; // Startup option type (which type of values that the startup option accepts) private int type; // Startup option type details (details of the values that the startup option accepts) private String typeDetails; // Startup option value (startup option configured value) private String value; // Widget that represents the startup option value in the UI private Widget valueWidget; // Startup option predefined values (list of values the startup option accepts) private List<String> preDefinedValues; /** * Constructor * * @param name * @param type */ public StartupOption(String name, int type) { this.checked = false; this.name = name; this.type = type; this.value = ""; this.preDefinedValues = new ArrayList<String>(); } /** * Get startup option name * * @return startup option name */ public String getName() { return name; } /** * Set startup option name * * @param name startup option name */ public void setName(String name) { this.name = name; } /** * Get startup option user-friendly name * * @return */ public String getUserFriendlyName() { return userFriendlyName; } /** * Set startup option user-friendly name * * @param userFriendlyName */ public void setUserFriendlyName(String userFriendlyName) { this.userFriendlyName = userFriendlyName; } /** * Get startup option type * * @return startup option type */ public int getType() { return type; } /** * Set startup option type * * @param type startup option type */ public void setType(int type) { this.type = type; } /** * Get startup option value * * @return startup option value */ public String getValue() { return value; } /** * Set startup option value * * @param value startup option value */ public void setValue(String value) { this.value = value; } /** * Get startup option pre-defined values * * @return startup option pre-defined values */ public List<String> getPreDefinedValues() { return preDefinedValues; } /** * Set startup option pre-defined values * * @param preDefinedValues startup option pre-defined values */ public void setPreDefinedValues(List<String> preDefinedValues) { this.preDefinedValues = preDefinedValues; } /** * Check if the startup option is being used * * @return true if the startup option is being used, false otherwise */ public boolean isChecked() { return checked; } /** * Set that the startup option is being used or not * * @param checked true if the startup option is being used, false otherwise */ public void setChecked(boolean checked) { this.checked = checked; } /** * Get startup option description * * @return startup option description */ public String getDescription() { return description; } /** * Set startup option description * * @param description startup option description */ public void setDescription(String description) { this.description = description; } /** * Get startup option type details * * @return startup option type details */ public String getTypeDetails() { return typeDetails; } /** * Get startup option type details * * @param typeDetails valuable information for validating if the value assigned is correct */ public void setTypeDetails(String typeDetails) { this.typeDetails = typeDetails; } /** * Get the widget that represents the checked status in the UI * * @return widget that represents the checked status in the UI */ public Widget getCheckedWidget() { return checkedWidget; } /** * Set the widget that represents the checked status in the UI * * @param checkedWidget widget that represents the checked status in the UI */ public void setCheckedWidget(Widget checkedWidget) { this.checkedWidget = checkedWidget; } /** * Get the widget that represents the startup option value in the UI * * @return widget that represents the startup option value in the UI */ public Widget getValueWidget() { return valueWidget; } /** * Set the widget that represents the startup option value in the UI * * @param valueWidget widget that represents the startup option value in the UI */ public void setValueWidget(Widget valueWidget) { this.valueWidget = valueWidget; } /** * Update the widgets that represent this startup options in the UI * by changing their state to match the current values for checked and value */ public void updateUI() { if (checkedWidget != null && !checkedWidget.isDisposed()) { ((Button) this.checkedWidget).setSelection(this.checked); } if (valueWidget != null && !checkedWidget.isDisposed()) { if (this.valueWidget instanceof Text) { ((Text) this.valueWidget).setText(this.value); } else if (this.valueWidget instanceof Combo) { if ((this.value == null) || (this.value.equals(""))) { ((Combo) this.valueWidget).deselectAll(); } else { ((Combo) this.valueWidget).select(getPreDefinedValues().indexOf(this.value)); } } } } }