Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Commit 97abfb6a authored by Harald Martini's avatar Harald Martini
Browse files

Added GuiLabelAttribute

Added EnumConverter
parent c76e5d5b
No related branches found
No related tags found
No related merge requests found
......@@ -5,6 +5,8 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
using Castle.Core.Internal;
using TUGraz.VectoCommon.Utils;
namespace VECTO3GUI2020.Helper.Converter
{
......@@ -12,20 +14,24 @@ namespace VECTO3GUI2020.Helper.Converter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
/*
*Enum dummyEnum;
if (underlyingType != null) {
dummyEnum = Enum.Parse(underlyingType, underlyingType.GetEnumNames()[0]);
} else {
dummyEnum = Enum.Parse(dynType, dynType.GetEnumNames()[0]);
}
*
*
*
*
*/
if (value == null) {
return Binding.DoNothing;
}
return value;
Type valueType = value.GetType();
if (!valueType.IsEnum) {
return value;
}
var attributes =
valueType.GetField(value.ToString())?.GetCustomAttributes( typeof(GuiLabelAttribute),false);
GuiLabelAttribute attribute = attributes.IsNullOrEmpty() ? null : attributes.First() as GuiLabelAttribute;
if (attribute == null) {
return value;
} else {
return attribute.Label;
}
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
......
......@@ -13,5 +13,6 @@
<converter:InvertedBoolToVisibilityConverter x:Key="InvertedBoolToVisibilityConverter"/>
<converter:MultistageParameterModeToVisibilityConverter x:Key="ParameterModeToVisibilityConverter"/>
<converter:XToBoolConverter x:Key="XToBoolConverter"/>
<converter:EnumConverter x:Key="EnumConverter"></converter:EnumConverter>
</ResourceDictionary>
......@@ -15,7 +15,7 @@
<StackPanel>
<customControls:MultiStageParameter Content="{Binding ConvertedSI}" DummyContent="{Binding Source={StaticResource milimeterDummy}}"/>
<customControls:MultiStageParameter Content="{Binding ConvertedSI1}" DummyContent="{Binding Source={StaticResource milimeterDummy}}"/>
<!--<customControls:MultiStageParameter Content="{Binding Meter}"></customControls:MultiStageParameter>-->
<customControls:MultiStageParameter Mode="COMBOBOX" Content="{Binding HeatPumpMode}"></customControls:MultiStageParameter>
</StackPanel>
</Grid>
</UserControl>
......@@ -4,6 +4,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using TUGraz.VectoCommon.BusAuxiliaries;
using TUGraz.VectoCommon.Utils;
using VECTO3GUI2020.ViewModel.Implementation.Common;
using VECTO3GUI2020.ViewModel.Interfaces;
......@@ -33,6 +34,7 @@ namespace VECTO3GUI2020
private Meter _meter;
private HeatPumpMode? _heatpumpMode;
public Meter Meter
{
......@@ -40,6 +42,12 @@ namespace VECTO3GUI2020
set => SetProperty(ref _meter, value);
}
public HeatPumpMode? HeatPumpMode
{
get => _heatpumpMode;
set => SetProperty(ref _heatpumpMode, value);
}
public TestViewModel()
{
......
......@@ -252,7 +252,6 @@
<Compile Include="ViewModel\Interfaces\JobEdit\Vehicle\Components\ITyreViewModel.cs" />
<Compile Include="ViewModel\Interfaces\JobEdit\Vehicle\IVehicleViewModel.cs" />
<Compile Include="ViewModel\MultiStage\Implementation\InterimStageBusVehicleViewModel_v2_8.cs" />
<Compile Include="ViewModel\MultiStage\Implementation\InterimStageBusAuxiliariesViewModel_v2_8.cs" />
<Compile Include="ViewModel\MultiStage\Implementation\ManufacturingStageViewModel_v0_1.cs" />
<Compile Include="ViewModel\MultiStage\Implementation\MultistageAirdragViewModel.cs" />
<Compile Include="ViewModel\MultiStage\Implementation\MultistageAuxiliariesViewModel.cs" />
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VECTO3GUI2020.ViewModel.Implementation.Common;
namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
{
public class InterimStageBusAuxiliariesViewModel_v2_8 : ViewModelBase
{
}
}
......@@ -84,7 +84,13 @@
IsHitTestVisible="{Binding ElementName=MultistageParameterControl,
Path=EditingEnabled}"
Focusable="{Binding RelativeSource={RelativeSource Self},
Path=IsHitTestVisible}" IsEditable="False"/>
Path=IsHitTestVisible}" IsEditable="False">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Converter={StaticResource EnumConverter}}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
......
......@@ -238,9 +238,13 @@ namespace TUGraz.VectoCommon.BusAuxiliaries
public enum HeatPumpMode
{
[GuiLabel("Heating")]
heating,
[GuiLabel("Heating and cooling")]
heating_and_cooling,
[GuiLabel("Cooling")]
cooling,
[GuiLabel("N_A")]
N_A,
}
......
using System;
namespace TUGraz.VectoCommon.Utils
{
public class GuiLabelAttribute : Attribute
{
public string Label { get; private set; }
public GuiLabelAttribute(string label)
{
Label = label;
}
}
}
\ No newline at end of file
......@@ -135,6 +135,7 @@
<Compile Include="Utils\DoubleExtensionMethods.cs" />
<Compile Include="Utils\EnumerableExtensionMethods.cs" />
<Compile Include="Utils\EnumHelper.cs" />
<Compile Include="Utils\GuiLabelAttribute.cs" />
<Compile Include="Utils\IntExtensionMethods.cs" />
<Compile Include="Utils\SI.cs" />
<Compile Include="Utils\SIConvertExtensionMethods.cs" />
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment