Actions och klickhanterare
Ett antal kontroller, som t ex poster i menyer, formulärknappar och knappar i verktygsfält är "klickbara", dvs något ska hända när användaren klickar på dem. Detta kan vara t ex:
Dynamix unifierar dessa varianter i interfacet Dynamix.Ui5.Controls.IClickAction som implementeras av Dynamix.Ui5.Controls.JsAction och Dynamix.Ui5.Controls.LinkAction och deras subklasser enligt:
ClientClickAction
Denna typ används för att köra kod på klienten:
- C#
var myButton = new ToolbarButton
{
Icons = Icons.GetStandard( "paste" ),
Text = "Klistra in",
Action = new ClientClickAction( "alert('Klistra in')" )
};
ClickAction
Denna typ kör kod på servern:
- C#
var myButton = new ToolbarButton
{
Icons = Icons.GetStandard( "paste" ),
Text = "Klistra in",
Action = new ClickAction( myButton_ClickHandler )
};
private void myButton_ClickHandler( ClickAction sender, Object contextobject, string clientinfo )
{
}
DialogAction
Används för att öppna en dialog eller ett fönster av "verktygstyp", dvs en dialog där man inte vill eller behöver göra något speicell då den stängs. Exempelvis för att öppna en dialog som hanterar webbplatsens nyheter:
- C#
var info = new ManageObjectsDialogInfo { WindowName = "News" };
info.Parameters.DialogCustomizerType = typeof( NewsDialogCustomizer );
info.Parameters.Title = "Nyheter";
var myButton = new ToolbarButton
{
Text = "Nyheter",
Icons = Icons.GetStandard( "newspaper" ),
Action = new DialogAction( info )
};
OkCancelDialogAction
Denna typ används för att öppna dialoger där man vill köra kod när/om användaren klickar på Ok, t ex för att spara de värden som har angivits i dialogen.
- C#
var editSettingsInfo = new EditObjectDialogInfo();
editSettingsInfo.Parameters.CurrentObject = MySite.Settings.Instance;
var editSettingsAction = new OkCancelDialogAction( editSettingsInfo );
var myButton = new ToolbarButton
{
Icons = Icons.GetStandard( "edit" ),
Text = "Inställningar",
Action = editSettingsAction
};
editSettingsAction.DialogOk += editSettingsAction_DialogOk;
...
void editSettingsAction_DialogOk( DialogParameters returnValues, DialogParameters inParameters )
{
((MySite.Settings)returnValues.CurrentObject).DB_Save();
}