2 using System.Collections.Generic;
3 using System.ComponentModel;
9 using System.Text.RegularExpressions;
12 namespace sage.addons.components
24 private string tableName =
"";
28 public string TableName
30 get {
return tableName; }
31 set { tableName = value; }
39 InitializeComponent();
47 InitializeComponent();
52 listboxCampos.DisplayMember =
"Nombre";
53 listboxCampos.ValueMember =
"Nombre";
57 private void buttonAceptar_Click(
object sender, EventArgs e)
59 string messageError =
"";
61 Microsoft.VisualStudio.Shell.ThreadHelper.ThrowIfNotOnUIThread();
65 if (lbOk &&
string.IsNullOrWhiteSpace(messageError))
67 messageError =
"Se ha creado los widgets con éxito.";
70 if (!
string.IsNullOrWhiteSpace(messageError))
73 MessageBox.Show(messageError,
"Crear widget", MessageBoxButtons.OK, MessageBoxIcon.Information);
76 MessageBox.Show(messageError,
"Crear widget", MessageBoxButtons.OK, MessageBoxIcon.Stop);
81 HabilitarProperties();
82 this.DialogResult = DialogResult.OK;
86 private void propertygridPropiedades_PropertyValueChanged(
object s, PropertyValueChangedEventArgs e)
89 if (e.ChangedItem.PropertyDescriptor.Name ==
"Nombre")
91 if (e.ChangedItem.Value != e.OldValue)
93 if (!VerificarNombre(Convert.ToString(e.ChangedItem.Value)) && listboxCampos.SelectedItem != null)
95 ((DataWidgetProperties)listboxCampos.SelectedItem).Nombre = Convert.ToString(e.OldValue) ;
102 if (e.ChangedItem.PropertyDescriptor.Name ==
"Titulo")
104 if (e.ChangedItem.Value != e.OldValue)
106 if (
String.IsNullOrEmpty(Convert.ToString(e.ChangedItem.Value)) && listboxCampos.SelectedItem != null)
108 ((DataWidgetProperties)listboxCampos.SelectedItem).Titulo = Convert.ToString(e.OldValue);
109 MessageBox.Show(
"Debe indicar el título del widget.",
"Crear widget", MessageBoxButtons.OK, MessageBoxIcon.Stop);
118 listboxCampos.DisplayMember =
"";
119 listboxCampos.DisplayMember =
"Nombre";
122 private void toolStripMenuItemNuevaTablaRestablecer_Click(
object sender, EventArgs e)
124 if (propertygridPropiedades.SelectedGridItem.PropertyDescriptor == null)
127 propertygridPropiedades.SelectedGridItem.PropertyDescriptor.ResetValue(propertygridPropiedades.SelectedObject);
128 propertygridPropiedades.Refresh();
131 private void buttonAddCampoTabla_Click(
object sender, EventArgs e)
133 DataWidgetProperties nuevoWidget = FuncsDataBase.
NuevoWidget();
134 nuevoWidget.
Existe =
false;
136 listboxCampos.SelectedIndex = listboxCampos.Items.Count - 1;
137 propertygridPropiedades.SelectedObject = listboxCampos.SelectedItem;
138 propertygridPropiedades.Focus();
141 private void listboxCampos_SelectedIndexChanged(
object sender, EventArgs e)
144 if (listboxCampos.SelectedItem != null)
145 propertygridPropiedades.SelectedObject = listboxCampos.SelectedItem;
148 private void buttonBorrarCampoTabla_Click(
object sender, EventArgs e)
150 if (listboxCampos.SelectedItem != null)
152 int selectedIndex = listboxCampos.SelectedIndex;
154 if (!FuncsDataBase.
BorrarWidget((DataWidgetProperties)listboxCampos.SelectedItem))
156 MessageBox.Show(
"No puede borrar el widget seleccionado.",
"Borrar widget", MessageBoxButtons.OK, MessageBoxIcon.Stop);
161 if (selectedIndex > listboxCampos.Items.Count - 1)
162 selectedIndex = listboxCampos.Items.Count - 1;
164 listboxCampos.SelectedIndex = selectedIndex;
165 propertygridPropiedades.SelectedObject = listboxCampos.SelectedItem;
170 private void LoadWidgets()
172 DataTable dtObjetos =
new DataTable();
175 listboxCampos.Items.Clear();
178 foreach (DataRow drRow
in dtObjetos.Rows)
180 DataWidgetProperties nuevoWidget = FuncsDataBase.
NuevoWidget();
181 nuevoWidget.
Nombre = Convert.ToString(drRow[
"clase"]).Trim();
182 nuevoWidget.Descripcion = Convert.ToString(drRow[
"tooltip"]).Trim();
184 nuevoWidget.TipoDatoKey = Convert.ToString(drRow[
"tipobase"]).Trim();
185 nuevoWidget.Titulo = Convert.ToString(drRow[
"nombre"]).Trim();
186 nuevoWidget.Existe =
true;
190 private bool VerificarNombre(
string tcNombre)
192 if (
string.IsNullOrWhiteSpace(tcNombre))
194 MessageBox.Show(
"Debe indicar el nombre del widget.",
"Crear widget", MessageBoxButtons.OK, MessageBoxIcon.Stop);
198 if (tcNombre.Contains(
' '))
200 MessageBox.Show(
"El nombre del widget no puede contener espacios.",
"Crear widget", MessageBoxButtons.OK, MessageBoxIcon.Stop);
205 Regex regex =
new Regex(
@"[/?:&\*""<>|#%]");
207 if (regex.Matches(tcNombre).Count > 0)
209 MessageBox.Show(
"El nombre del widget contiene caracteres no válidos.",
"Crear widget", MessageBoxButtons.OK, MessageBoxIcon.Stop);
213 if (tcNombre == AddonsExecute.NombreAddon)
215 MessageBox.Show(
"No se puede indicar el mismo nombre del addon al nuevo widget.",
"Crear widget", MessageBoxButtons.OK, MessageBoxIcon.Stop);
223 private void HabilitarProperties()
226 DataWidgetProperties nuevoWidget = FuncsDataBase.
NuevoWidget();
227 nuevoWidget.
Existe =
false;
231 private void buttonCancelar_Click(
object sender, EventArgs e)
233 HabilitarProperties();
234 this.DialogResult = DialogResult.Cancel;
BindingList< DataWidgetProperties > camposNuevoWidgetList
Lista de campos para nuevos widgets
DataWidgetProperties NuevoWidget()
Crea un nuevo widget y pone propiedades predetermindas
Clase para las acciones en la base de datos
bool ObtenerWidgets(ref DataTable dtTabla)
Obtener los widgets en un DataTable
bool CrearNuevoWidget(out string messageError)
Crear nuevo widget
bool BorrarWidget(DataWidgetProperties datawidgetPropertiesItem)
Borrar un widget