diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2019-04-08 00:45:08 +0300 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2019-04-08 00:45:08 +0300 |
| commit | 1608e69a417bc5e40a607c3958c4a60f19f66f1a (patch) | |
| tree | c04d78e2abb5aac8c22350c90cb8b469f6eca30d /Software | |
| parent | 08dd6000fe3a218221003876a699f448835b62e4 (diff) | |
| parent | b4a71931ea52636c6b36376aa9d71697ccf73524 (diff) | |
| download | Tango-1608e69a417bc5e40a607c3958c4a60f19f66f1a.tar.gz Tango-1608e69a417bc5e40a607c3958c4a60f19f66f1a.zip | |
Merge branch 'master' of https://twinetfs.visualstudio.com/Tango/_git/Tango
Diffstat (limited to 'Software')
37 files changed, 1226 insertions, 363 deletions
diff --git a/Software/Embedded_SW/Embedded/Main.c b/Software/Embedded_SW/Embedded/Main.c index 00ee77251..046f8291e 100644 --- a/Software/Embedded_SW/Embedded/Main.c +++ b/Software/Embedded_SW/Embedded/Main.c @@ -197,7 +197,7 @@ int main(void) MotorsInit(); //Shai WHS_HW_test(); // for WHS sensor test // WHS_init(); - Buttons_Init(); +// Buttons_Init(); //IDS_ModuleInit(); Valve_Set(VALVE_MIXCHIP_WASTECH, Mixer_Waste); diff --git a/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerIdle.c b/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerIdle.c index 22b30748f..7d42ad8f5 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerIdle.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerIdle.c @@ -75,7 +75,7 @@ uint32_t PowerIdleCallBackFunction(uint32_t IfIndex, uint32_t BusyFlag) { Report("PowerIdle Idle activated ",__FILE__,__LINE__,(int)powerIdleSecondsLimit,RpWarning,(int)powerIdleSecondsCounter,0); powerIdleState = true; - //SetPowerMachineState(sttIDLE); + SetPowerMachineState(sttIDLE); //move to idle state PowerIdleSetIdle(); } @@ -103,7 +103,7 @@ void PowerIdleOutOfIdleState(void) if (powerIdleState == true) { powerIdleState = false; - //SetPowerMachineState(sttON); + SetPowerMachineState(sttON); if (HandleProcessParameters(&ActiveProcessParameters)!= OK) { LOG_ERROR (1, "Turn Heaters active failed"); diff --git a/Software/PMR/Messages/EmbeddedParameters/ConfigurationParameters.proto b/Software/PMR/Messages/EmbeddedParameters/ConfigurationParameters.proto index 733651a34..1752307ad 100644 --- a/Software/PMR/Messages/EmbeddedParameters/ConfigurationParameters.proto +++ b/Software/PMR/Messages/EmbeddedParameters/ConfigurationParameters.proto @@ -62,7 +62,20 @@ message ConfigurationParameters double IDS_CleaningSpeed = 26; //cleaning dispenser stop before segment start double IDS_CleaningStopBeforeSegmentTime = 27; - double IDS_LeftCleaningMotorSpeed = 28; - double IDS_RightCleaningMotorSpeed = 29; + //cleaning dispenser start during pre segment + double IDS_CleaningStartSprayPreSegmentTime = 28; + double IDS_LeftCleaningMotorSpeed = 29; + double IDS_RightCleaningMotorSpeed = 30; + + uint32 SwitchToIdleTimeinSeconds = 31; + uint32 IdleDrierTemperature = 32; + uint32 IdleHeadTemperature = 33; + uint32 IdleMixerTemperature = 34; + + uint32 PowerOffTemperatureLimit = 35; //temperature to allow machine power off + + double IDS_PreSegment_WFCF_TimeBeforeSegment = 36; + + } diff --git a/Software/Stubs Collection/stubs/technician view files/lp4 Tech Board.tpf b/Software/Stubs Collection/stubs/technician view files/lp4 Tech Board.tpf index 630461d99..f1c80020c 100644 --- a/Software/Stubs Collection/stubs/technician view files/lp4 Tech Board.tpf +++ b/Software/Stubs Collection/stubs/technician view files/lp4 Tech Board.tpf @@ -24,13 +24,13 @@ <Width>575</Width> <Height>201.64159292035407</Height> <Angle>0</Angle> - <ItemGuid>D7585119-4A42-4370-8F1E-F3E62553E588</ItemGuid> + <ItemGuid>AFB7B6F7-8FFB-4A7F-B814-04F0C163CAA1</ItemGuid> <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>1</DecimalPlaces> <Duration>701</Duration> <Min>0</Min> <Max>300</Max> <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> </TechItem> <TechItem xsi:type="ControllerItem"> <ID>ba743caa-95f2-4b20-8c32-8e5943ada3fc</ID> @@ -41,9 +41,9 @@ <Angle>0</Angle> <ItemGuid>78482AA4-3DF6-421F-944C-64328D3C3EF2</ItemGuid> <ColorNumber>-14774017</ColorNumber> - <UpdateInterval>10</UpdateInterval> <OptimalRangeMinimum>0</OptimalRangeMinimum> <OptimalRangeMaximum>70</OptimalRangeMaximum> + <UpdateInterval>10</UpdateInterval> <IsSetToDefault>true</IsSetToDefault> </TechItem> <TechItem xsi:type="DigitalOutItem"> @@ -123,13 +123,13 @@ <ColorNumber>-1</ColorNumber> <HeaterState> <HeaterType>DryerAirHeater</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>97.389999999999986</CurrentValue> + <SetPoint>165</SetPoint> + <CurrentValue>149.02</CurrentValue> <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> + <IsRampingUp>true</IsRampingUp> + <IsInSetPoint>false</IsInSetPoint> </HeaterState> - <SetPoint>0</SetPoint> + <SetPoint>165</SetPoint> </TechItem> <TechItem xsi:type="HeaterItem"> <ID>0ac64716-d30c-489b-939e-a26d06445866</ID> @@ -143,7 +143,7 @@ <HeaterState> <HeaterType>DryerMainHeater</HeaterType> <SetPoint>0</SetPoint> - <CurrentValue>170.61999999999998</CurrentValue> + <CurrentValue>249.91</CurrentValue> <IsActive>false</IsActive> <IsRampingUp>false</IsRampingUp> <IsInSetPoint>true</IsInSetPoint> @@ -162,7 +162,7 @@ <HeaterState> <HeaterType>DryerSecondaryHeater</HeaterType> <SetPoint>0</SetPoint> - <CurrentValue>167.51</CurrentValue> + <CurrentValue>251.47</CurrentValue> <IsActive>false</IsActive> <IsRampingUp>false</IsRampingUp> <IsInSetPoint>true</IsInSetPoint> @@ -180,13 +180,13 @@ <ColorNumber>-1</ColorNumber> <HeaterState> <HeaterType>HeaterZone3</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>87.97</CurrentValue> + <SetPoint>110</SetPoint> + <CurrentValue>109.75999999999999</CurrentValue> <IsActive>false</IsActive> <IsRampingUp>false</IsRampingUp> <IsInSetPoint>true</IsInSetPoint> </HeaterState> - <SetPoint>0</SetPoint> + <SetPoint>110</SetPoint> </TechItem> <TechItem xsi:type="HeaterItem"> <ID>7e8dd386-cca6-4d07-8a3e-af5403756002</ID> @@ -199,13 +199,13 @@ <ColorNumber>-1</ColorNumber> <HeaterState> <HeaterType>HeaterZone2</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>92.71</CurrentValue> + <SetPoint>110</SetPoint> + <CurrentValue>109.67999999999999</CurrentValue> <IsActive>false</IsActive> <IsRampingUp>false</IsRampingUp> <IsInSetPoint>true</IsInSetPoint> </HeaterState> - <SetPoint>0</SetPoint> + <SetPoint>110</SetPoint> </TechItem> <TechItem xsi:type="HeaterItem"> <ID>32a91e5f-27c8-490d-b187-8e39b6626a13</ID> @@ -218,13 +218,13 @@ <ColorNumber>-1</ColorNumber> <HeaterState> <HeaterType>HeaterZone1</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>68.76</CurrentValue> + <SetPoint>80</SetPoint> + <CurrentValue>79.76</CurrentValue> <IsActive>false</IsActive> <IsRampingUp>false</IsRampingUp> <IsInSetPoint>true</IsInSetPoint> </HeaterState> - <SetPoint>0</SetPoint> + <SetPoint>80</SetPoint> </TechItem> <TechItem xsi:type="HeaterItem"> <ID>c844235a-8a29-4c2e-a964-e8f546d2ced7</ID> @@ -238,7 +238,7 @@ <HeaterState> <HeaterType>MixerHeater</HeaterType> <SetPoint>0</SetPoint> - <CurrentValue>72.5</CurrentValue> + <CurrentValue>283.75</CurrentValue> <IsActive>false</IsActive> <IsRampingUp>false</IsRampingUp> <IsInSetPoint>true</IsInSetPoint> @@ -256,13 +256,13 @@ <ColorNumber>-1</ColorNumber> <HeaterState> <HeaterType>HeaterZone4</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>89.149999999999991</CurrentValue> + <SetPoint>120</SetPoint> + <CurrentValue>119.64999999999999</CurrentValue> <IsActive>false</IsActive> <IsRampingUp>false</IsRampingUp> <IsInSetPoint>true</IsInSetPoint> </HeaterState> - <SetPoint>0</SetPoint> + <SetPoint>120</SetPoint> </TechItem> <TechItem xsi:type="HeaterItem"> <ID>e6b3eb18-482b-450e-b8a8-d2ac6bba4fd4</ID> @@ -275,13 +275,13 @@ <ColorNumber>-1</ColorNumber> <HeaterState> <HeaterType>HeaterZone5</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>109.14999999999999</CurrentValue> + <SetPoint>130</SetPoint> + <CurrentValue>129.72</CurrentValue> <IsActive>false</IsActive> <IsRampingUp>false</IsRampingUp> <IsInSetPoint>true</IsInSetPoint> </HeaterState> - <SetPoint>0</SetPoint> + <SetPoint>130</SetPoint> </TechItem> <TechItem xsi:type="HeaterItem"> <ID>efff2e67-e3a3-4667-9208-4704707d7cda</ID> @@ -294,13 +294,13 @@ <ColorNumber>-1</ColorNumber> <HeaterState> <HeaterType>HeaterZone6</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>105.57</CurrentValue> + <SetPoint>140</SetPoint> + <CurrentValue>139.54</CurrentValue> <IsActive>false</IsActive> <IsRampingUp>false</IsRampingUp> <IsInSetPoint>true</IsInSetPoint> </HeaterState> - <SetPoint>0</SetPoint> + <SetPoint>140</SetPoint> </TechItem> <TechItem xsi:type="MonitorItem"> <ID>f9936dba-cef8-41e3-a715-eb629dca1870</ID> @@ -421,7 +421,7 @@ <ItemGuid>96B89605-F999-43FE-A1CD-2645BFB33A36</ItemGuid> <ColorNumber>-1</ColorNumber> <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> + <DecimalPoints>2</DecimalPoints> </TechItem> <TechItem xsi:type="MonitorItem"> <ID>6be024c6-3d1b-4267-9b77-44473aba56b7</ID> @@ -433,7 +433,7 @@ <ItemGuid>FC60060A-3736-4910-B41A-FF6DABDF0E9E</ItemGuid> <ColorNumber>-1</ColorNumber> <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> + <DecimalPoints>2</DecimalPoints> </TechItem> <TechItem xsi:type="MonitorItem"> <ID>7c720f3b-00e1-49dd-92f9-fdd1e9686623</ID> @@ -445,7 +445,7 @@ <ItemGuid>4CE6A82E-D841-4D33-BBB2-11F0743A441C</ItemGuid> <ColorNumber>-1</ColorNumber> <UpdateInterval>10</UpdateInterval> - <DecimalPoints>0</DecimalPoints> + <DecimalPoints>2</DecimalPoints> </TechItem> <TechItem xsi:type="SingleGraphItem"> <ID>3ebd6759-521b-4ed1-a353-ee1ad7801f28</ID> @@ -456,11 +456,11 @@ <Angle>0</Angle> <ItemGuid>D126DB23-784B-4F0C-8F88-D89A65A7549F</ItemGuid> <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>1</DecimalPlaces> <Duration>1460</Duration> <Min>0</Min> <Max>16384</Max> <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> </TechItem> <TechItem xsi:type="SingleGraphItem"> <ID>984b4126-3dda-4624-a79f-0646eb0e1358</ID> @@ -471,11 +471,11 @@ <Angle>0</Angle> <ItemGuid>10102BC3-0EAE-47FF-A8E5-8640780CAA3D</ItemGuid> <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>1</DecimalPlaces> <Duration>1516</Duration> <Min>0</Min> <Max>16384</Max> <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> </TechItem> <TechItem xsi:type="SingleGraphItem"> <ID>8ebc3ab7-a02d-4b12-93b3-2563443831d7</ID> @@ -486,11 +486,11 @@ <Angle>0</Angle> <ItemGuid>C0BCCD5C-346B-4C4A-A080-39D28E9E1A0C</ItemGuid> <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>1</DecimalPlaces> <Duration>1398</Duration> <Min>0</Min> <Max>16384</Max> <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> </TechItem> <TechItem xsi:type="SingleGraphItem"> <ID>acafb268-5e97-4277-8dc8-173250a9e3f8</ID> @@ -501,11 +501,22 @@ <Angle>0</Angle> <ItemGuid>9FBC5460-BA59-486B-8D85-BD7D8A959F98</ItemGuid> <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>1</DecimalPlaces> <Duration>1273</Duration> <Min>0</Min> <Max>100</Max> <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> + </TechItem> + <TechItem xsi:type="MotorItem"> + <ID>3ccb1485-b0e9-4d36-a931-a1b3865edeaa</ID> + <Left>460</Left> + <Top>38.28761061946841</Top> + <Width>267</Width> + <Height>221.90707964601768</Height> + <Angle>0</Angle> + <ItemGuid>08d15ca1-d7d1-460f-8f37-42c37c287cd1</ItemGuid> + <ColorNumber>-1</ColorNumber> + <Speed>952.3546144121359</Speed> </TechItem> <TechItem xsi:type="SingleGraphItem"> <ID>be4cb8d9-b516-4604-a6a5-1638cbc50251</ID> @@ -516,11 +527,11 @@ <Angle>0</Angle> <ItemGuid>4CE6A82E-D841-4D33-BBB2-11F0743A441C</ItemGuid> <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>1</DecimalPlaces> <Duration>514</Duration> <Min>0</Min> <Max>100000</Max> <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> </TechItem> <TechItem xsi:type="SingleGraphItem"> <ID>75b99507-4eba-4b11-b52e-26732d4c5479</ID> @@ -531,11 +542,11 @@ <Angle>0</Angle> <ItemGuid>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</ItemGuid> <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>4</DecimalPlaces> <Duration>1398</Duration> <Min>0</Min> <Max>100</Max> <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>4</DecimalPlaces> </TechItem> <TechItem xsi:type="SingleGraphItem"> <ID>a30e48de-be76-4230-92d0-d27d6f37b940</ID> @@ -546,11 +557,11 @@ <Angle>0</Angle> <ItemGuid>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</ItemGuid> <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>4</DecimalPlaces> <Duration>1398</Duration> <Min>0</Min> <Max>100</Max> <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>4</DecimalPlaces> </TechItem> <TechItem xsi:type="SingleGraphItem"> <ID>5ac4b368-093a-4192-98d4-e9d24f229b13</ID> @@ -561,31 +572,30 @@ <Angle>0</Angle> <ItemGuid>84CF23C9-D20D-4C08-BE1D-80201FC43C06</ItemGuid> <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>4</DecimalPlaces> <Duration>1398</Duration> <Min>0</Min> <Max>100</Max> <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>4</DecimalPlaces> </TechItem> <TechItem xsi:type="MonitorRecorderItem"> <ID>9c34dc69-cfaa-48b4-9d02-8f0d9bba79dd</ID> - <Left>1358</Left> - <Top>123.61504424778764</Top> - <Width>170</Width> - <Height>573.5132743362833</Height> - <Angle>0</Angle> - <ColorNumber>-1</ColorNumber> - <SelectedMonitorsGuids /> - </TechItem> - <TechItem xsi:type="ThreadMotionItem"> - <ID>b083f678-c5ea-4700-bfa2-ca51ed62cf4b</ID> - <Left>480</Left> - <Top>23.300884955752224</Top> - <Width>317</Width> - <Height>192.52212389380532</Height> + <Left>1303</Left> + <Top>34.380530973454768</Top> + <Width>176</Width> + <Height>83.05309734512457</Height> <Angle>0</Angle> <ColorNumber>-1</ColorNumber> - <Speed>20</Speed> + <SelectedMonitorsGuids> + <string>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</string> + <string>4CE6A82E-D841-4D33-BBB2-11F0743A441C</string> + <string>9ADF7823-B293-4275-9999-F62474D246AA</string> + <string>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</string> + <string>FC60060A-3736-4910-B41A-FF6DABDF0E9E</string> + <string>96B89605-F999-43FE-A1CD-2645BFB33A36</string> + <string>84CF23C9-D20D-4C08-BE1D-80201FC43C06</string> + <string>89B7B89D-8050-4188-B568-35B1910CFB6F</string> + </SelectedMonitorsGuids> </TechItem> </Items> </MachineTechViewProjectTab> @@ -685,7 +695,7 @@ <Angle>0</Angle> <ItemGuid>8A957565-4165-49F7-854D-D21F95FFBE1B</ItemGuid> <ColorNumber>-724238</ColorNumber> - <Speed>1200</Speed> + <Speed>0</Speed> <DisplayName>Dispenser 8</DisplayName> </TechItem> <TechItem xsi:type="MonitorItem"> @@ -791,7 +801,7 @@ <Width>247</Width> <Height>122.24778761061873</Height> <Angle>0</Angle> - <ItemGuid>99cf8832-edf6-4343-9af4-a5808680becc</ItemGuid> + <ItemGuid>074b6ed8-0f87-4973-bbea-509838f9c3ed</ItemGuid> <ColorNumber>-1</ColorNumber> </TechItem> <TechItem xsi:type="DigitalOutItem"> @@ -813,9 +823,9 @@ <Angle>0</Angle> <ItemGuid>78482AA4-3DF6-421F-944C-64328D3C3EF2</ItemGuid> <ColorNumber>-14774017</ColorNumber> - <UpdateInterval>10</UpdateInterval> <OptimalRangeMinimum>0</OptimalRangeMinimum> <OptimalRangeMaximum>70</OptimalRangeMaximum> + <UpdateInterval>10</UpdateInterval> <IsSetToDefault>true</IsSetToDefault> </TechItem> <TechItem xsi:type="DigitalOutItem"> @@ -849,11 +859,11 @@ <Angle>0</Angle> <ItemGuid>D023F15D-3555-48E9-A9E9-5DF99F60D791</ItemGuid> <ColorNumber>0</ColorNumber> + <DecimalPlaces>1</DecimalPlaces> <Duration>10</Duration> <Min>0</Min> <Max>100</Max> <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> </TechItem> <TechItem xsi:type="MonitorItem"> <ID>46bdfce3-1c69-45dd-bbe9-582d1ac1e6f2</ID> @@ -1067,7 +1077,7 @@ <Height>167.26548672566202</Height> <Angle>0</Angle> <ColorNumber>-1</ColorNumber> - <Speed>20</Speed> + <Speed>40</Speed> </TechItem> <TechItem xsi:type="BreakSensorItem"> <ID>92607e12-2dd6-41c9-8f89-f051f386b734</ID> @@ -1169,11 +1179,11 @@ <Angle>0</Angle> <ItemGuid>D7585119-4A42-4370-8F1E-F3E62553E588</ItemGuid> <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>2</DecimalPlaces> <Duration>2962</Duration> <Min>0</Min> <Max>300</Max> <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> </TechItem> <TechItem xsi:type="SingleGraphItem"> <ID>c4e19f7c-e6e9-4f45-987e-f124456b2529</ID> @@ -1184,11 +1194,11 @@ <Angle>0</Angle> <ItemGuid>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</ItemGuid> <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>3</DecimalPlaces> <Duration>2817</Duration> <Min>0</Min> <Max>300</Max> <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>3</DecimalPlaces> </TechItem> <TechItem xsi:type="SingleGraphItem"> <ID>b8b24455-1c20-417d-bd78-5fe4c7e3d023</ID> @@ -1199,11 +1209,11 @@ <Angle>0</Angle> <ItemGuid>6C0C1AB0-3EE9-40D7-8424-A79436FBC804</ItemGuid> <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>2</DecimalPlaces> <Duration>2982</Duration> <Min>0</Min> <Max>300</Max> <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> </TechItem> <TechItem xsi:type="SingleGraphItem"> <ID>2129a0cd-454f-4834-8197-3b048bf4b978</ID> @@ -1214,11 +1224,11 @@ <Angle>0</Angle> <ItemGuid>098F7CAB-030C-46B0-B2B8-A85AF2253032</ItemGuid> <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>2</DecimalPlaces> <Duration>2949</Duration> <Min>0</Min> <Max>100</Max> <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> </TechItem> <TechItem xsi:type="SingleGraphItem"> <ID>892fabb7-01fa-4b39-a19e-a557fafae0ac</ID> @@ -1229,11 +1239,11 @@ <Angle>0</Angle> <ItemGuid>DACEBF90-E2B4-4CC9-A973-B8B429AA0089</ItemGuid> <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>2</DecimalPlaces> <Duration>2628</Duration> <Min>0</Min> <Max>300</Max> <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> </TechItem> <TechItem xsi:type="SingleGraphItem"> <ID>4859974c-7224-42d5-97ca-0e2e549372f5</ID> @@ -1244,11 +1254,11 @@ <Angle>0</Angle> <ItemGuid>246C2551-5EFD-48E9-94F6-6313C5E5018F</ItemGuid> <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>2</DecimalPlaces> <Duration>3153</Duration> <Min>0</Min> <Max>300</Max> <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> </TechItem> <TechItem xsi:type="PidItem"> <ID>81b78212-14d8-4a66-bf3a-eeea9900e0d6</ID> @@ -1319,11 +1329,11 @@ <Angle>0</Angle> <ItemGuid>AFB7B6F7-8FFB-4A7F-B814-04F0C163CAA1</ItemGuid> <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>2</DecimalPlaces> <Duration>3153</Duration> <Min>0</Min> <Max>300</Max> <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> </TechItem> <TechItem xsi:type="SingleGraphItem"> <ID>9330a6be-17f1-4ecb-978d-719adf9fec1f</ID> @@ -1334,11 +1344,11 @@ <Angle>0</Angle> <ItemGuid>9A3877B2-9F98-4A5C-9A93-DECA2836FA8A</ItemGuid> <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>2</DecimalPlaces> <Duration>3153</Duration> <Min>0</Min> <Max>300</Max> <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>2</DecimalPlaces> </TechItem> <TechItem xsi:type="PidItem"> <ID>3228b2ba-83f3-4eb2-a6d2-7200301758a4</ID> @@ -1371,13 +1381,13 @@ <ColorNumber>-1</ColorNumber> <HeaterState> <HeaterType>HeaterZone4</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>89.149999999999991</CurrentValue> + <SetPoint>120</SetPoint> + <CurrentValue>119.64999999999999</CurrentValue> <IsActive>false</IsActive> <IsRampingUp>false</IsRampingUp> <IsInSetPoint>true</IsInSetPoint> </HeaterState> - <SetPoint>0</SetPoint> + <SetPoint>120</SetPoint> </TechItem> <TechItem xsi:type="HeaterItem"> <ID>4fa7a50d-5155-4785-95a0-508cd40fad4d</ID> @@ -1390,13 +1400,13 @@ <ColorNumber>-1</ColorNumber> <HeaterState> <HeaterType>HeaterZone1</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>68.76</CurrentValue> + <SetPoint>80</SetPoint> + <CurrentValue>79.76</CurrentValue> <IsActive>false</IsActive> <IsRampingUp>false</IsRampingUp> <IsInSetPoint>true</IsInSetPoint> </HeaterState> - <SetPoint>0</SetPoint> + <SetPoint>80</SetPoint> </TechItem> <TechItem xsi:type="HeaterItem"> <ID>9da56601-7b5b-4f0f-afbf-2b31970b104f</ID> @@ -1409,13 +1419,13 @@ <ColorNumber>-1</ColorNumber> <HeaterState> <HeaterType>HeaterZone3</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>87.97</CurrentValue> + <SetPoint>110</SetPoint> + <CurrentValue>109.75999999999999</CurrentValue> <IsActive>false</IsActive> <IsRampingUp>false</IsRampingUp> <IsInSetPoint>true</IsInSetPoint> </HeaterState> - <SetPoint>0</SetPoint> + <SetPoint>110</SetPoint> </TechItem> <TechItem xsi:type="HeaterItem"> <ID>b700e59d-f923-4f13-9dcc-942050548c22</ID> @@ -1428,13 +1438,13 @@ <ColorNumber>-1</ColorNumber> <HeaterState> <HeaterType>HeaterZone5</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>109.14999999999999</CurrentValue> + <SetPoint>130</SetPoint> + <CurrentValue>129.72</CurrentValue> <IsActive>false</IsActive> <IsRampingUp>false</IsRampingUp> <IsInSetPoint>true</IsInSetPoint> </HeaterState> - <SetPoint>0</SetPoint> + <SetPoint>130</SetPoint> </TechItem> <TechItem xsi:type="HeaterItem"> <ID>97bf8fa2-b07f-4f0e-87ac-820ea52d236e</ID> @@ -1448,7 +1458,7 @@ <HeaterState> <HeaterType>MixerHeater</HeaterType> <SetPoint>0</SetPoint> - <CurrentValue>72.5</CurrentValue> + <CurrentValue>283.75</CurrentValue> <IsActive>false</IsActive> <IsRampingUp>false</IsRampingUp> <IsInSetPoint>true</IsInSetPoint> @@ -1466,13 +1476,13 @@ <ColorNumber>-1</ColorNumber> <HeaterState> <HeaterType>HeaterZone2</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>92.71</CurrentValue> + <SetPoint>110</SetPoint> + <CurrentValue>109.67999999999999</CurrentValue> <IsActive>false</IsActive> <IsRampingUp>false</IsRampingUp> <IsInSetPoint>true</IsInSetPoint> </HeaterState> - <SetPoint>0</SetPoint> + <SetPoint>110</SetPoint> </TechItem> <TechItem xsi:type="HeaterItem"> <ID>3020fbc5-305e-4adf-9f1e-d7a48168e2e7</ID> @@ -1485,13 +1495,13 @@ <ColorNumber>-1</ColorNumber> <HeaterState> <HeaterType>HeaterZone6</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>105.57</CurrentValue> + <SetPoint>140</SetPoint> + <CurrentValue>139.54</CurrentValue> <IsActive>false</IsActive> <IsRampingUp>false</IsRampingUp> <IsInSetPoint>true</IsInSetPoint> </HeaterState> - <SetPoint>0</SetPoint> + <SetPoint>140</SetPoint> </TechItem> <TechItem xsi:type="HeaterItem"> <ID>a4049a51-7417-4eab-8bc1-837574307e93</ID> @@ -1504,13 +1514,13 @@ <ColorNumber>-1</ColorNumber> <HeaterState> <HeaterType>DryerAirHeater</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>97.389999999999986</CurrentValue> + <SetPoint>165</SetPoint> + <CurrentValue>149.02</CurrentValue> <IsActive>false</IsActive> - <IsRampingUp>false</IsRampingUp> - <IsInSetPoint>true</IsInSetPoint> + <IsRampingUp>true</IsRampingUp> + <IsInSetPoint>false</IsInSetPoint> </HeaterState> - <SetPoint>0</SetPoint> + <SetPoint>165</SetPoint> </TechItem> </Items> </MachineTechViewProjectTab> @@ -1537,11 +1547,11 @@ <Angle>0</Angle> <ItemGuid>098F7CAB-030C-46B0-B2B8-A85AF2253032</ItemGuid> <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>1</DecimalPlaces> <Duration>10</Duration> <Min>0</Min> <Max>100</Max> <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> </TechItem> <TechItem xsi:type="SingleGraphItem"> <ID>3bf6782d-117d-4589-a1d6-6454b67e3862</ID> @@ -1552,11 +1562,11 @@ <Angle>0</Angle> <ItemGuid>6C0C1AB0-3EE9-40D7-8424-A79436FBC804</ItemGuid> <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>1</DecimalPlaces> <Duration>10</Duration> <Min>0</Min> <Max>300</Max> <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> </TechItem> <TechItem xsi:type="SingleGraphItem"> <ID>c7a89d21-7383-4caa-941e-b42e1109b16a</ID> @@ -1567,11 +1577,11 @@ <Angle>0</Angle> <ItemGuid>246C2551-5EFD-48E9-94F6-6313C5E5018F</ItemGuid> <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>1</DecimalPlaces> <Duration>10</Duration> <Min>0</Min> <Max>300</Max> <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> </TechItem> <TechItem xsi:type="HeaterItem"> <ID>4c789472-cb4f-4ede-b22a-c733591117c8</ID> @@ -1584,13 +1594,13 @@ <ColorNumber>-1</ColorNumber> <HeaterState> <HeaterType>HeaterZone3</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>87.97</CurrentValue> + <SetPoint>110</SetPoint> + <CurrentValue>109.75999999999999</CurrentValue> <IsActive>false</IsActive> <IsRampingUp>false</IsRampingUp> <IsInSetPoint>true</IsInSetPoint> </HeaterState> - <SetPoint>0</SetPoint> + <SetPoint>110</SetPoint> </TechItem> <TechItem xsi:type="HeaterItem"> <ID>ddda12e1-54ad-4ffd-9f77-5845372e134f</ID> @@ -1603,13 +1613,13 @@ <ColorNumber>-1</ColorNumber> <HeaterState> <HeaterType>HeaterZone4</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>89.149999999999991</CurrentValue> + <SetPoint>120</SetPoint> + <CurrentValue>119.64999999999999</CurrentValue> <IsActive>false</IsActive> <IsRampingUp>false</IsRampingUp> <IsInSetPoint>true</IsInSetPoint> </HeaterState> - <SetPoint>0</SetPoint> + <SetPoint>120</SetPoint> </TechItem> <TechItem xsi:type="HeaterItem"> <ID>479f6fd7-25bb-4583-985e-169e045895ce</ID> @@ -1622,13 +1632,13 @@ <ColorNumber>-1</ColorNumber> <HeaterState> <HeaterType>HeaterZone5</HeaterType> - <SetPoint>0</SetPoint> - <CurrentValue>109.14999999999999</CurrentValue> + <SetPoint>130</SetPoint> + <CurrentValue>129.72</CurrentValue> <IsActive>false</IsActive> <IsRampingUp>false</IsRampingUp> <IsInSetPoint>true</IsInSetPoint> </HeaterState> - <SetPoint>0</SetPoint> + <SetPoint>130</SetPoint> </TechItem> <TechItem xsi:type="ProcessParametersItem"> <ID>2eed9e1e-31cd-4dc4-9d44-dd35798ff733</ID> @@ -1764,9 +1774,9 @@ <Angle>0</Angle> <ItemGuid>78482AA4-3DF6-421F-944C-64328D3C3EF2</ItemGuid> <ColorNumber>-14774017</ColorNumber> - <UpdateInterval>10</UpdateInterval> <OptimalRangeMinimum>0</OptimalRangeMinimum> <OptimalRangeMaximum>70</OptimalRangeMaximum> + <UpdateInterval>10</UpdateInterval> <IsSetToDefault>true</IsSetToDefault> </TechItem> </Items> @@ -1783,11 +1793,11 @@ <Angle>0</Angle> <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid> <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>3</DecimalPlaces> <Duration>3600</Duration> <Min>0</Min> <Max>100</Max> <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>3</DecimalPlaces> </TechItem> <TechItem xsi:type="SingleGraphItem"> <ID>aae29286-81b3-476a-9f58-c0fd246cae96</ID> @@ -1798,11 +1808,11 @@ <Angle>0</Angle> <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid> <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>3</DecimalPlaces> <Duration>3600</Duration> <Min>0</Min> <Max>100</Max> <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>3</DecimalPlaces> </TechItem> <TechItem xsi:type="TextItem"> <ID>7d94c7c4-1288-4f9d-b0e6-a06794829642</ID> @@ -1885,11 +1895,11 @@ <Angle>0</Angle> <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid> <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>3</DecimalPlaces> <Duration>3600</Duration> <Min>0</Min> <Max>100</Max> <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>3</DecimalPlaces> </TechItem> <TechItem xsi:type="TextItem"> <ID>1c254a92-c075-453f-9667-cdcc91cf8e6a</ID> @@ -1922,11 +1932,11 @@ <Angle>0</Angle> <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid> <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>3</DecimalPlaces> <Duration>3600</Duration> <Min>0</Min> <Max>100</Max> <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>3</DecimalPlaces> </TechItem> <TechItem xsi:type="TextItem"> <ID>0bef6e9d-6da0-4f06-9e1a-c00142bde4c1</ID> @@ -1959,11 +1969,11 @@ <Angle>0</Angle> <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid> <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>3</DecimalPlaces> <Duration>3600</Duration> <Min>0</Min> <Max>100</Max> <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>3</DecimalPlaces> </TechItem> <TechItem xsi:type="MonitorItem"> <ID>39f6a02c-c4d9-47d0-b92d-bdea0ed5d3ce</ID> @@ -1994,7 +2004,7 @@ <Width>244</Width> <Height>127.67256637168146</Height> <Angle>0</Angle> - <ItemGuid>7F9C5DE0-9E24-494D-841F-976DB440DBFD</ItemGuid> + <ItemGuid>481228F8-BA5F-4CE8-9384-EC3ACE80DDDC</ItemGuid> <ColorNumber>-1</ColorNumber> </TechItem> <TechItem xsi:type="ValveItem"> @@ -2031,11 +2041,11 @@ <Angle>0</Angle> <ItemGuid>96B89605-F999-43FE-A1CD-2645BFB33A36</ItemGuid> <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>1</DecimalPlaces> <Duration>10</Duration> <Min>0</Min> <Max>100000</Max> <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> </TechItem> <TechItem xsi:type="SingleGraphItem"> <ID>3d0f66be-0002-403d-8d4b-0d49d85c0570</ID> @@ -2046,11 +2056,11 @@ <Angle>0</Angle> <ItemGuid>D126DB23-784B-4F0C-8F88-D89A65A7549F</ItemGuid> <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>1</DecimalPlaces> <Duration>10</Duration> <Min>0</Min> <Max>16384</Max> <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> </TechItem> <TechItem xsi:type="SingleGraphItem"> <ID>6ce9bf4a-e710-4bc6-bcc1-e8055b77530c</ID> @@ -2061,11 +2071,11 @@ <Angle>0</Angle> <ItemGuid>FC60060A-3736-4910-B41A-FF6DABDF0E9E</ItemGuid> <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>1</DecimalPlaces> <Duration>10</Duration> <Min>0</Min> <Max>100000</Max> <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> </TechItem> <TechItem xsi:type="SingleGraphItem"> <ID>da0aa379-4643-40cb-b990-45574e5545df</ID> @@ -2076,11 +2086,11 @@ <Angle>0</Angle> <ItemGuid>10102BC3-0EAE-47FF-A8E5-8640780CAA3D</ItemGuid> <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>1</DecimalPlaces> <Duration>10</Duration> <Min>0</Min> <Max>16384</Max> <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> </TechItem> <TechItem xsi:type="SingleGraphItem"> <ID>09b31ecb-8eaf-4c70-8057-1a11b5f10bad</ID> @@ -2091,11 +2101,11 @@ <Angle>0</Angle> <ItemGuid>89B7B89D-8050-4188-B568-35B1910CFB6F</ItemGuid> <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>1</DecimalPlaces> <Duration>10</Duration> <Min>0</Min> <Max>100000</Max> <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> </TechItem> <TechItem xsi:type="SingleGraphItem"> <ID>2a970ff9-b593-4df4-977f-7d29ce25d0c6</ID> @@ -2106,11 +2116,11 @@ <Angle>0</Angle> <ItemGuid>84CF23C9-D20D-4C08-BE1D-80201FC43C06</ItemGuid> <ColorNumber>-14774017</ColorNumber> + <DecimalPlaces>1</DecimalPlaces> <Duration>10</Duration> <Min>0</Min> <Max>100</Max> <UseAutoRange>true</UseAutoRange> - <DecimalPlaces>1</DecimalPlaces> </TechItem> <TechItem xsi:type="PidItem"> <ID>eebe8aa9-cff0-45ef-b1dd-d71cbe3b2947</ID> @@ -2157,5 +2167,5 @@ </Items> </MachineTechViewProjectTab> </Tabs> - <SelectedTabIndex>2</SelectedTabIndex> + <SelectedTabIndex>0</SelectedTabIndex> </MachineTechViewProject>
\ No newline at end of file diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/app.manifest b/Software/Visual_Studio/PPC/Tango.PPC.UI/app.manifest index efc5f8179..d72e75011 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/app.manifest +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/app.manifest @@ -16,7 +16,7 @@ Remove this element if your application requires this virtualization for backwards compatibility. --> - <!--<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />--> + <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> </requestedPrivileges> </security> </trustInfo> diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE.UI/App.config b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE.UI/App.config index aa58e3cac..3c6b718b3 100644 --- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE.UI/App.config +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE.UI/App.config @@ -6,6 +6,42 @@ <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> + <dependentAssembly> + <assemblyIdentity name="System.Security.Cryptography.Algorithms" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.IO.FileSystem" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.IO.FileSystem.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Security.Cryptography.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Xml.XPath.XDocument" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.2.1.0" newVersion="1.2.1.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Console" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Diagnostics.StackTrace" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" /> + </dependentAssembly> </assemblyBinding> </runtime> </configuration>
\ No newline at end of file diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE.UI/Tango.Scripting.IDE.UI.csproj b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE.UI/Tango.Scripting.IDE.UI.csproj index f87325bc9..01f93cc44 100644 --- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE.UI/Tango.Scripting.IDE.UI.csproj +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE.UI/Tango.Scripting.IDE.UI.csproj @@ -46,6 +46,9 @@ <Reference Include="Microsoft.CodeAnalysis.CSharp, Version=2.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.2.4.0\lib\netstandard1.3\Microsoft.CodeAnalysis.CSharp.dll</HintPath> </Reference> + <Reference Include="Microsoft.WindowsAPICodePack, Version=1.1.2.0, Culture=neutral, processorArchitecture=MSIL"> + <HintPath>..\packages\WindowsAPICodePack-Core.1.1.2\lib\Microsoft.WindowsAPICodePack.dll</HintPath> + </Reference> <Reference Include="System" /> <Reference Include="System.AppContext, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> <HintPath>..\packages\System.AppContext.4.3.0\lib\net46\System.AppContext.dll</HintPath> diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE.UI/packages.config b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE.UI/packages.config index e207a9750..5fa98b5e2 100644 --- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE.UI/packages.config +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE.UI/packages.config @@ -45,4 +45,5 @@ <package id="System.Xml.XmlDocument" version="4.3.0" targetFramework="net461" /> <package id="System.Xml.XPath" version="4.3.0" targetFramework="net461" /> <package id="System.Xml.XPath.XDocument" version="4.3.0" targetFramework="net461" /> + <package id="WindowsAPICodePack-Core" version="1.1.2" targetFramework="net461" /> </packages>
\ No newline at end of file diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Converters/LeftMarginMultiplierConverter.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Converters/LeftMarginMultiplierConverter.cs new file mode 100644 index 000000000..2acefc09c --- /dev/null +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Converters/LeftMarginMultiplierConverter.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Globalization; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Media; + +namespace Tango.Scripting.IDE.Converters +{ + public static class TreeViewItemExtensions + { + public static int GetDepth(this TreeViewItem item) + { + TreeViewItem parent; + while ((parent = GetParent(item)) != null) + { + return GetDepth(parent) + 1; + } + return 0; + } + + private static TreeViewItem GetParent(TreeViewItem item) + { + var parent = VisualTreeHelper.GetParent(item); + while (!(parent is TreeViewItem || parent is TreeView)) + { + parent = VisualTreeHelper.GetParent(parent); + } + return parent as TreeViewItem; + } + } + public class LeftMarginMultiplierConverter : IValueConverter + { + public double Length { get; set; } + + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + var item = value as TreeViewItem; + if (item == null) + return new Thickness(0); + + return new Thickness(Length * item.GetDepth(), 0, 0, 0); + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new System.NotImplementedException(); + } + } +} diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/AddProjectView.xaml b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/AddProjectView.xaml new file mode 100644 index 000000000..3046857db --- /dev/null +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/AddProjectView.xaml @@ -0,0 +1,131 @@ +<UserControl x:Class="Tango.Scripting.IDE.Dialogs.AddProjectView" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:Tango.Scripting.IDE.Dialogs" + mc:Ignorable="d" + xmlns:global="clr-namespace:Tango.Scripting.IDE" + Width="800" Height="600" + MinWidth="800" MinHeight="600" + d:DesignHeight="450" d:DesignWidth="800" d:DataContext="{d:DesignInstance Type=local:NewProjectViewVM, IsDesignTimeCreatable=False}"> + <UserControl.Resources> + <ResourceDictionary> + <ResourceDictionary.MergedDictionaries> + <ResourceDictionary Source="/Tango.Scripting.IDE;component/Themes/DarkThemesColors.xaml"/> + <ResourceDictionary Source="/Tango.Scripting.IDE;component/Themes/Shared.xaml"/> + </ResourceDictionary.MergedDictionaries> + <Style TargetType="TextBlock"> + <Setter Property="Foreground" Value="{DynamicResource ControlTextBrush}" /> + </Style> + <Style TargetType="TextBox"> + <Setter Property="Foreground" Value="{DynamicResource ControlTextBrush}" /> + <Setter Property="Background" Value="{DynamicResource ListBorder}" /> + <Setter Property="BorderThickness" Value="1"/> + <Setter Property="BorderBrush" Value="{DynamicResource ListBorder}"/> + </Style> + + <Style TargetType="Label"> + <Setter Property="Foreground" Value="{DynamicResource ControlTextBrush}" /> + </Style> + <BooleanToVisibilityConverter x:Key="BoolToVis" /> + </ResourceDictionary> + </UserControl.Resources> + <Grid x:Name="Main_NewProject_grid" Background="{DynamicResource Window.Background}" > + <Grid.ColumnDefinitions> + <ColumnDefinition Width="*"/> + <ColumnDefinition Width="240"/> + </Grid.ColumnDefinitions> + <Grid.RowDefinitions> + <RowDefinition Height="*"/> + <RowDefinition Height="Auto"/> + <RowDefinition Height="40"/> + </Grid.RowDefinitions> + <Border Background="{DynamicResource Background.Static}" BorderThickness="0" Grid.Column="0" Grid.Row="0" > + <Border BorderThickness="0" Margin="5" Background="{DynamicResource Window.Background}"> + <ListView x:Name="ProjectTypes" ItemsSource="{Binding ProjectTypes}" Background="Transparent" ScrollViewer.VerticalScrollBarVisibility="Auto" SelectedItem="{Binding SelectedProjectType,Mode=TwoWay}" BorderBrush="Transparent" IsSynchronizedWithCurrentItem="True"> + <ListView.ItemTemplate> + <DataTemplate> + <Border Padding="2"> + <WrapPanel> + <Image Stretch="Fill" Height="30" Source="{Binding Path=SmallImage}"/> + <TextBlock Text="{Binding Name}" Margin="20,5,0,0" Foreground="{DynamicResource ControlTextBrush}"/> + </WrapPanel> + </Border> + </DataTemplate> + </ListView.ItemTemplate> + <ListView.Resources> + <Style TargetType="{x:Type ListViewItem}"> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type ListViewItem}"> + <Border x:Name="Bd" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="1" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true"> + <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" /> + </Border> + <ControlTemplate.Triggers> + <MultiTrigger> + <MultiTrigger.Conditions> + <Condition Property="Selector.IsSelectionActive" Value="False" /> + <Condition Property="IsSelected" Value="True" /> + </MultiTrigger.Conditions> + <Setter Property="Background" TargetName="Bd" Value="{DynamicResource ControlBrushColorKey}" /> + </MultiTrigger> + <MultiTrigger> + <MultiTrigger.Conditions> + <Condition Property="Selector.IsSelectionActive" Value="True" /> + <Condition Property="IsSelected" Value="True" /> + </MultiTrigger.Conditions> + <Setter Property="Background" TargetName="Bd" Value="{DynamicResource ControlBrushColorKey}" /> + </MultiTrigger> + </ControlTemplate.Triggers> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + </ListView.Resources> + </ListView> + </Border> + </Border> + <Grid x:Name="ProjectImage" Grid.Column="1" Grid.Row="0" Background="{DynamicResource Background.Static}"> + <Grid.RowDefinitions> + <RowDefinition Height="Auto" MinHeight="40"/> + <RowDefinition Height="*"/> + </Grid.RowDefinitions> + <TextBlock Grid.Row="0" Text="{Binding SelectedDescription}" Margin="10" TextWrapping="Wrap"/> + <Border Grid.Row="1" BorderThickness="0"> + <Border Width="126" Height="126" VerticalAlignment="Center" HorizontalAlignment="Center"> + <Image Stretch="Uniform" Source="{Binding Path=LargeImage}" + VerticalAlignment="Center" + HorizontalAlignment="Center" /> + </Border> + </Border> + </Grid> + + <Border Grid.Row="1" Grid.ColumnSpan="2" Margin="10" > + <Grid x:Name="ProjectNameGrid" Grid.Row="1" Grid.ColumnSpan="2"> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="110"/> + <ColumnDefinition Width="*"/> + <ColumnDefinition Width="240"/> + </Grid.ColumnDefinitions> + <Grid.RowDefinitions> + <RowDefinition Height="24"/> + <RowDefinition Height="5"/> + <RowDefinition Height="24"/> + <RowDefinition Height="5"/> + <RowDefinition Height="24"/> + </Grid.RowDefinitions> + + <TextBlock Grid.Column="0" Grid.Row="0">Name:</TextBlock> + <TextBox Grid.Column="1" Grid.Row="0" VerticalAlignment="Center" Text="{Binding ProjectName}"/> + + </Grid> + </Border> + <Border Grid.Row="2" Grid.ColumnSpan="2"> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" > + <Button Style="{DynamicResource TangoButtonStyle}" IsDefault="True" Width="80" Height="24" Command="{Binding OKCommand}">OK</Button> + <Button Margin="8,0,15,0" Style="{DynamicResource TangoButtonStyle}" Width="80" Height="24" Command="{Binding CloseCommand}">Cancel</Button> + </StackPanel> + </Border> + </Grid> +</UserControl> diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/AddProjectView.xaml.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/AddProjectView.xaml.cs new file mode 100644 index 000000000..83856f4e7 --- /dev/null +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/AddProjectView.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace Tango.Scripting.IDE.Dialogs +{ + /// <summary> + /// Interaction logic for AddProjectControl.xaml + /// </summary> + public partial class AddProjectView : UserControl + { + public AddProjectView() + { + InitializeComponent(); + } + } +} diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/AddProjectViewVM.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/AddProjectViewVM.cs new file mode 100644 index 000000000..2d636a6d5 --- /dev/null +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/AddProjectViewVM.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.SharedUI; + +namespace Tango.Scripting.IDE.Dialogs +{ + public class AddProjectViewVM : BaseProjectDialogVM + { + public AddProjectViewVM() : base() + { + Title = "Add Project"; + //ProjectName + } + } +} diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectDialogVM.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/BaseProjectDialogVM.cs index 1dd0e3205..5f2ebcb15 100644 --- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectDialogVM.cs +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/BaseProjectDialogVM.cs @@ -6,21 +6,24 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Media.Imaging; +using Tango.Core.Commands; using Tango.Scripting.IDE.ProjectTypes; using Tango.SharedUI; namespace Tango.Scripting.IDE.Dialogs { - public class NewProjectDialogVM : DialogViewVM + public class BaseProjectDialogVM : IDEDialogViewModel { + #region properties public ObservableCollection<IProjectType> ProjectTypes { get; set; } - public List<String> Locations { get; set; } private IProjectType _selectedProjectType = null; public IProjectType SelectedProjectType { get { return _selectedProjectType; } - set { _selectedProjectType = value; + set + { + _selectedProjectType = value; RaisePropertyChangedAuto(); RaisePropertyChanged("LargeImage"); RaisePropertyChanged("SelectedDescription"); @@ -57,17 +60,9 @@ namespace Tango.Scripting.IDE.Dialogs get { return _projectLocation; } set { _projectLocation = value; RaisePropertyChangedAuto(); } } - - private String _solutionName = "App1"; - public String SolutionName - { - get { return _solutionName; } - set { _solutionName = value; RaisePropertyChangedAuto(); } - } - - bool _isNewSolutionDialog = false; - public bool IsNewSolutionDialog { get { return _isNewSolutionDialog; } set { _isNewSolutionDialog = value; RaisePropertyChangedAuto(); } } - public NewProjectDialogVM() : base() + #endregion + #region constructor + public BaseProjectDialogVM() : base() { ProjectTypes = new ObservableCollection<IProjectType>(); RegisterProjectType(new StubProjectType()); @@ -76,12 +71,17 @@ namespace Tango.Scripting.IDE.Dialogs _selectedProjectType = ProjectTypes.FirstOrDefault(); string workingDirectory = Environment.CurrentDirectory; - _projectLocation = Directory.GetParent(workingDirectory).Parent.Parent.FullName; - - Locations = new List<string>(); - Locations.Add(_projectLocation); + ProjectLocation = Directory.GetParent(workingDirectory).Parent.Parent.FullName; + CanClose = true; + CloseCommand = new RelayCommand(Cancel, (x) => CanClose); + OKCommand = new RelayCommand(Accept, (x) => CanClose); } + #endregion + #region commands + + #endregion + #region register_project_types public void RegisterProjectType(IProjectType projectType) { ProjectTypes.Add(projectType); @@ -91,5 +91,6 @@ namespace Tango.Scripting.IDE.Dialogs { ProjectTypes.Remove(projectType); } + #endregion } } diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/CommonOpenFileDialog.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/CommonOpenFileDialog.cs new file mode 100644 index 000000000..6664e2d9c --- /dev/null +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/CommonOpenFileDialog.cs @@ -0,0 +1,7 @@ +namespace Tango.Scripting.IDE.Dialogs +{ + //internal class CommonOpenFileDialog + //{ + // public string InitialDirectory { get; internal set; } + //} +}
\ No newline at end of file diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectDialog.xaml b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectDialog.xaml deleted file mode 100644 index 914740ede..000000000 --- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectDialog.xaml +++ /dev/null @@ -1,35 +0,0 @@ -<Window x:Class="Tango.Scripting.IDE.Dialogs.NewProjectDialog" - xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" - xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" - xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" - xmlns:d="http://schemas.microsoft.com/expression/blend/2008" - xmlns:global="clr-namespace:Tango.Scripting.IDE" - xmlns:local="clr-namespace:Tango.Scripting.IDE.Dialogs" - mc:Ignorable="d" - Title="Add New Project" - WindowStyle="ToolWindow" - ResizeMode="NoResize" ShowInTaskbar="False" WindowStartupLocation="CenterScreen" - FontSize="12" - Height="630" Width="950" > - <Window.Resources> - <ResourceDictionary> - <ResourceDictionary.MergedDictionaries> - <ResourceDictionary Source="/Tango.Scripting.IDE;component/Themes/DarkThemesColors.xaml"/> - <ResourceDictionary Source="/Tango.Scripting.IDE;component/Themes/ButtonStyle.xaml"/> - </ResourceDictionary.MergedDictionaries> - </ResourceDictionary> - </Window.Resources> - <Grid Background="{DynamicResource Window.Background}"> - <Grid.RowDefinitions> - <RowDefinition Height="*"/> - <RowDefinition Height="40"/> - </Grid.RowDefinitions> - <local:AddNewControl x:Name="AddNewControl" Grid.Row="0" Margin="10,10,10,0"/> - <Border Grid.Row="1"> - <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" > - <Button Style="{DynamicResource TangoButtonStyle}" Click="OKDialog" IsDefault="True" Width="80" Height="24">OK</Button> - <Button Margin="8,0,15,0" Style="{DynamicResource TangoButtonStyle}" Click="CancelDialog" Width="80" Height="24">Cancel</Button> - </StackPanel> - </Border> - </Grid> -</Window> diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectDialog.xaml.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectDialog.xaml.cs deleted file mode 100644 index 24c9511e7..000000000 --- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectDialog.xaml.cs +++ /dev/null @@ -1,62 +0,0 @@ - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Data; -using System.Windows.Documents; -using System.Windows.Input; -using System.Windows.Media; -using System.Windows.Media.Imaging; -using System.Windows.Navigation; -using System.Windows.Shapes; - -namespace Tango.Scripting.IDE.Dialogs -{ - /// <summary> - /// Interaction logic for NewProjectDialog.xaml - /// </summary> - public partial class NewProjectDialog : Window - { - static string _sAddNewProjectTitle = "Add New Project"; - static string _sNewProjectTitle = "New Project"; - protected bool _bNewProject; - - - public NewProjectDialog(bool bNewProject) - { - _bNewProject = bNewProject; - - InitializeComponent(); - Title = bNewProject ? _sAddNewProjectTitle : _sNewProjectTitle; - Loaded += DialogLoaded; - - - } - private void DialogLoaded(object sender, RoutedEventArgs e) - { - if (AddNewControl.DataContext is NewProjectDialogVM) - { - (AddNewControl.DataContext as NewProjectDialogVM).IsNewSolutionDialog = _bNewProject; - } - } - - private void CancelDialog(object sender, RoutedEventArgs e) - { - // Dialog box canceled - DialogResult = false; - } - - private void OKDialog(object sender, RoutedEventArgs e) - { - // Don't accept the dialog box if there is invalid data - // if (!IsValid(this)) return; - - // Dialog box accepted - DialogResult = true; - } - } -} diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/AddNewControl.xaml b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectView.xaml index e49925dad..20a334f3b 100644 --- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/AddNewControl.xaml +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectView.xaml @@ -1,4 +1,4 @@ -<UserControl x:Class="Tango.Scripting.IDE.Dialogs.AddNewControl" +<UserControl x:Class="Tango.Scripting.IDE.Dialogs.NewProjectView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" @@ -6,7 +6,9 @@ xmlns:local="clr-namespace:Tango.Scripting.IDE.Dialogs" mc:Ignorable="d" xmlns:global="clr-namespace:Tango.Scripting.IDE" - d:DesignHeight="450" d:DesignWidth="800" d:DataContext="{d:DesignInstance Type=local:NewProjectDialogVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.NewProjectDialogVM}"> + d:DesignHeight="450" d:DesignWidth="800" + Width="800" Height="600" + > <UserControl.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> @@ -37,7 +39,7 @@ <Grid.RowDefinitions> <RowDefinition Height="*"/> <RowDefinition Height="Auto"/> - <RowDefinition Height="5"/> + <RowDefinition Height="40"/> </Grid.RowDefinitions> <Border Background="{DynamicResource Background.Static}" BorderThickness="0" Grid.Column="0" Grid.Row="0" > <Border BorderThickness="0" Margin="5" Background="{DynamicResource Window.Background}"> @@ -117,16 +119,21 @@ <TextBlock Grid.Column="0" Grid.Row="0">Name:</TextBlock> <TextBox Grid.Column="1" Grid.Row="0" VerticalAlignment="Center" Text="{Binding ProjectName}"/> - <TextBlock Grid.Column="0" Grid.Row="2" Visibility="{Binding Path=IsNewSolutionDialog, Converter={StaticResource BoolToVis}}" Text="Location"/> - <Border Background="{DynamicResource ListBorder}" Grid.Column="1" Grid.Row="2" Margin="0,2,0,2" BorderBrush="{DynamicResource Button.Static.Border}" Visibility="{Binding Path=IsNewSolutionDialog, Converter={StaticResource BoolToVis}}"> + <TextBlock Grid.Column="0" Grid.Row="2" Text="Location"/> + <Border Background="{DynamicResource ListBorder}" Grid.Column="1" Grid.Row="2" Margin="0,2,0,2" BorderBrush="{DynamicResource Button.Static.Border}" > <ComboBox Style="{DynamicResource TangoComboboxStyle}" VerticalAlignment="Stretch" SelectedItem="{Binding ProjectLocation}" ItemsSource="{Binding Locations}" HorizontalAlignment="Stretch" BorderBrush="Transparent"/> </Border> - <Button Style="{DynamicResource TangoButtonStyle}" Grid.Column="2" Grid.Row="2" Width="80" HorizontalAlignment="Left" Margin="20,0,0,0" Visibility="{Binding Path=IsNewSolutionDialog, Converter={StaticResource BoolToVis}}" Content="Browse..."/> - <TextBlock Grid.Column="0" Grid.Row="4" Visibility="{Binding Path=IsNewSolutionDialog, Converter={StaticResource BoolToVis}}" Text="Solution name:"/> - <TextBox Grid.Column="1" Grid.Row="4" VerticalAlignment="Center" Text="{Binding SolutionName}" Visibility="{Binding Path=IsNewSolutionDialog, Converter={StaticResource BoolToVis}}"/> + <Button Style="{DynamicResource TangoButtonStyle}" Grid.Column="2" Grid.Row="2" Width="80" HorizontalAlignment="Left" Margin="20,0,0,0" Content="Browse..." Command="{Binding BrowseFileCommand}"/> + <TextBlock Grid.Column="0" Grid.Row="4" Text="Solution name:"/> + <TextBox Grid.Column="1" Grid.Row="4" VerticalAlignment="Center" Text="{Binding SolutionName}" /> </Grid> </Border> - + <Border Grid.Row="2" Grid.ColumnSpan="2"> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" > + <Button Style="{DynamicResource TangoButtonStyle}" IsDefault="True" Width="80" Height="24" Command="{Binding OKCommand}">OK</Button> + <Button Margin="8,0,15,0" Style="{DynamicResource TangoButtonStyle}" Width="80" Height="24" Command="{Binding CloseCommand}">Cancel</Button> + </StackPanel> + </Border> </Grid> </UserControl> diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/AddNewControl.xaml.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectView.xaml.cs index cdbea2199..5221146d8 100644 --- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/AddNewControl.xaml.cs +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectView.xaml.cs @@ -18,9 +18,9 @@ namespace Tango.Scripting.IDE.Dialogs /// <summary> /// Interaction logic for AddNewControl.xaml /// </summary> - public partial class AddNewControl : UserControl + public partial class NewProjectView : UserControl { - public AddNewControl() + public NewProjectView() { InitializeComponent(); } diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectViewVM.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectViewVM.cs new file mode 100644 index 000000000..4b656c98c --- /dev/null +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/NewProjectViewVM.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Media.Imaging; +using Tango.Core.Commands; +using Tango.Scripting.IDE.ProjectTypes; +using Tango.SharedUI; +using Microsoft.WindowsAPICodePack.Dialogs; +using Microsoft.Win32; + +namespace Tango.Scripting.IDE.Dialogs +{ + public class NewProjectViewVM : BaseProjectDialogVM + { + + static public ObservableCollection<String> Locations { get; set; } = new ObservableCollection<string>(); + + private String _solutionName = "App1"; + public String SolutionName + { + get { return _solutionName; } + set { _solutionName = value; RaisePropertyChangedAuto(); } + } + #region Commands + public RelayCommand BrowseFileCommand { get; set; } + #endregion + public NewProjectViewVM() : base() + { + Title = "New Project"; + + if(Locations.IndexOf(ProjectLocation) < 0) + { + Locations.Add(ProjectLocation); + } + BrowseFileCommand = new RelayCommand(BrowseFile); + } + private void BrowseFile() + { + CommonOpenFileDialog dialog = new CommonOpenFileDialog(); + dialog.InitialDirectory = Locations.LastOrDefault<string>(); + dialog.IsFolderPicker = true; + if (dialog.ShowDialog() == CommonFileDialogResult.Ok) + { + if( Directory.Exists(dialog.FileName) == true) + { + if(false == Locations.Contains(dialog.FileName)) + { + Locations.Add(dialog.FileName); + } + ProjectLocation = dialog.FileName; + } + } + } + } +} diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/IDEDialogViewModel.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/IDEDialogViewModel.cs new file mode 100644 index 000000000..7532581b1 --- /dev/null +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/IDEDialogViewModel.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.SharedUI; + +namespace Tango.Scripting.IDE +{ + public class IDEDialogViewModel : DialogViewVM + { + public String Title { get; set; } + } +} diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/IDEViewModel.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/IDEViewModel.cs new file mode 100644 index 000000000..ef413f69a --- /dev/null +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/IDEViewModel.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.Core.DI; +using Tango.Scripting.IDE.Notifications; +using Tango.SharedUI; + +namespace Tango.Scripting.IDE +{ + public class IDEViewModel : ViewModel + { + public INotificationManager NotificationManager { get; set; } + + public IDEViewModel() + { + TangoIOC.Default.Inject(this); + } + } +} diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/stop.png b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/stop.png Binary files differindex 7d1b1551a..33e74f508 100644 --- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/stop.png +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Images/stop.png diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Notifications/DefaultNotificationManager.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Notifications/DefaultNotificationManager.cs new file mode 100644 index 000000000..7121e6ce0 --- /dev/null +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Notifications/DefaultNotificationManager.cs @@ -0,0 +1,94 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Media.Imaging; +using Tango.Scripting.IDE.Windows; +using Tango.SharedUI; + +namespace Tango.Scripting.IDE.Notifications +{ + public class DefaultNotificationManager : INotificationManager + { + public Task<TViewModel> ShowDialog<TViewModel, TView>(TViewModel viewModel, TView view) + where TViewModel : IDEDialogViewModel + where TView : FrameworkElement + { + TaskCompletionSource<TViewModel> source = new TaskCompletionSource<TViewModel>(); + + Application.Current.Dispatcher.BeginInvoke(new Action(() => + { + DialogWindow window = new DialogWindow(); + window.Title = viewModel.Title; + window.Content = view; + view.DataContext = viewModel; + window.WindowStartupLocation = WindowStartupLocation.CenterOwner; + window.Owner = Application.Current.MainWindow; + viewModel.Accepted += () => + { + window.Close(); + source.SetResult(viewModel); + }; + viewModel.Canceled += () => + { + window.Close(); + source.SetResult(viewModel); + }; + window.ShowDialog(); + })); + + return source.Task; + } + + public Task<TViewModel> ShowDialog<TViewModel>(TViewModel viewModel) where TViewModel : IDEDialogViewModel + { + var modelName = typeof(TViewModel).Name; + var viewName = modelName.Replace("VM", ""); + var viewType = typeof(TViewModel).Assembly.GetType(typeof(TViewModel).Namespace + "." + viewName); + var view = Activator.CreateInstance(viewType) as FrameworkElement; + return ShowDialog(viewModel, view); + } + + public Task<TViewModel> ShowDialog<TViewModel>() where TViewModel : IDEDialogViewModel + { + return ShowDialog(Activator.CreateInstance<TViewModel>()); + } + + public Task ShowError(string title, string message) + { + throw new NotImplementedException(); + } + + public Task ShowInfo(string title, string message) + { + throw new NotImplementedException(); + } + + public ProgressNotificationHandler ShowProgress(string title, string message, bool canCancel = false) + { + throw new NotImplementedException(); + } + + public Task<bool> ShowQuestion(string title, string message) + { + throw new NotImplementedException(); + } + + public Task ShowSuccess(string title, string message) + { + throw new NotImplementedException(); + } + + public Task ShowWarning(string title, string message) + { + throw new NotImplementedException(); + } + + private Task ShowMessageBox(String title, String message, bool hasCancel, BitmapSource icon) + { + return null; + } + } +} diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Notifications/INotificationManager.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Notifications/INotificationManager.cs new file mode 100644 index 000000000..1ed516b28 --- /dev/null +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Notifications/INotificationManager.cs @@ -0,0 +1,95 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using Tango.SharedUI; + +namespace Tango.Scripting.IDE.Notifications +{ + /// <summary> + /// Represents the IDE notification manager. + /// </summary> + public interface INotificationManager + { + /// <summary> + /// Displays the specified TView as a dialog and TViewModel as it's data context. + /// </summary> + /// <typeparam name="TViewModel">The type of the view model.</typeparam> + /// <typeparam name="TView">The type of the view.</typeparam> + /// <param name="viewModel">The view model.</param> + /// <param name="view">The view.</param> + /// <returns></returns> + Task<TViewModel> ShowDialog<TViewModel, TView>(TViewModel viewModel, TView view) where TViewModel : IDEDialogViewModel where TView : FrameworkElement; + + /// <summary> + /// Finds (by convention )the appropriate view by the specified TViewModel name. + /// The search pattern is ViewVM - VM + View. + /// </summary> + /// <typeparam name="TViewModel">The type of the view model.</typeparam> + /// <param name="viewModel">The view model.</param> + /// <returns></returns> + Task<TViewModel> ShowDialog<TViewModel>(TViewModel viewModel) where TViewModel : IDEDialogViewModel; + + /// <summary> + /// Finds (by convention )the appropriate view by the specified TViewModel name. + /// The search pattern is ViewVM - VM + View. + /// The view model instance will be created automatically and must contain a parameterless constructor. + /// </summary> + /// <typeparam name="TViewModel">The type of the view model.</typeparam> + /// <param name="viewModel">The view model.</param> + /// <returns></returns> + Task<TViewModel> ShowDialog<TViewModel>() where TViewModel : IDEDialogViewModel; + + /// <summary> + /// Displays an error message. + /// </summary> + /// <param name="title">The title.</param> + /// <param name="message">The message.</param> + /// <returns></returns> + Task ShowError(String title, String message); + + /// <summary> + /// Displays an error message. + /// </summary> + /// <param name="title">The title.</param> + /// <param name="message">The message.</param> + /// <returns></returns> + Task ShowInfo(String title, String message); + + /// <summary> + /// Displays a warning message. + /// </summary> + /// <param name="title">The title.</param> + /// <param name="message">The message.</param> + /// <returns></returns> + Task ShowWarning(String title, String message); + + /// <summary> + /// Displays a positive message. + /// </summary> + /// <param name="title">The title.</param> + /// <param name="message">The message.</param> + /// <returns></returns> + Task ShowSuccess(String title, String message); + + /// <summary> + /// Displays a question and returns the result. + /// </summary> + /// <param name="title">The title.</param> + /// <param name="message">The message.</param> + /// <returns></returns> + Task<bool> ShowQuestion(String title, String message); + + /// <summary> + /// Displays an intermediate progress dialog and returns an instance of <see cref="ProgressNotificationHandler"/>. + /// Once the progress notification handler will be disposed the dialog will close. + /// </summary> + /// <param name="title">The title.</param> + /// <param name="message">The message.</param> + /// <param name="canCancel">if set to <c>true</c> the dialog will contain a cancel button.</param> + /// <returns></returns> + ProgressNotificationHandler ShowProgress(String title, String message, bool canCancel = false); + } +} diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Notifications/ProgressNotificationHandler.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Notifications/ProgressNotificationHandler.cs new file mode 100644 index 000000000..b36419400 --- /dev/null +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Notifications/ProgressNotificationHandler.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.Scripting.IDE.Notifications +{ + public class ProgressNotificationHandler : IDisposable + { + private Action _disposeAction; + + public ProgressNotificationHandler(Action disposeAction) + { + _disposeAction = disposeAction; + } + + public void Dispose() + { + _disposeAction?.Invoke(); + } + } +} diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEView2.xaml b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEView2.xaml index 7dbf5541f..67a673d3b 100644 --- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEView2.xaml +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEView2.xaml @@ -23,7 +23,7 @@ <RowDefinition Height="Auto"></RowDefinition> <RowDefinition Height="*"></RowDefinition> </Grid.RowDefinitions> - <Menu Grid.Row="0" HorizontalAlignment="Stretch" Margin="0,0,0,0" Style="{DynamicResource TangoMenuStyle}"> + <Menu Grid.Row="0" HorizontalAlignment="Stretch" Margin="2,0,0,0" Style="{DynamicResource TangoMenuStyle}" BorderBrush="Transparent"> <MenuItem Header="File"> <MenuItem Header="New"> <MenuItem Header="New Project..." Command="{Binding NewProjectCommand}"> @@ -47,13 +47,17 @@ </MenuItem> <MenuItem Header="SaveAll"> <MenuItem.Icon> - <Image Source="/Tango.Scripting.IDE;component/Images/Images/SaveAll_16x.png" Height="10"/> + <Image Source="/Tango.Scripting.IDE;component/Images/SaveAll_16x.png" Height="10"/> </MenuItem.Icon> </MenuItem> <Separator/> <MenuItem Header="Exit"></MenuItem> </MenuItem> - <MenuItem Header="Edit"></MenuItem> + <MenuItem Header="Edit"> + <MenuItem Header="Cut"/> + <MenuItem Header="Copy"/> + <MenuItem Header="Paste"/> + </MenuItem> <MenuItem Header="View"></MenuItem> <MenuItem Header="Project"></MenuItem> <MenuItem Header="Build"></MenuItem> @@ -62,26 +66,52 @@ <MenuItem Header="Theme"></MenuItem> </Menu> <ToolBarTray Grid.Row="1" Background="{DynamicResource Background.Static}" Width="Auto" Orientation="Horizontal"> - <ToolBar Style="{DynamicResource TangoToolBarStyle}" Background="{DynamicResource Background.Static}" Height="30" HorizontalAlignment="Left" Foreground="{DynamicResource ControlForegroundKey}"> - - <Button Click="Button_Click" ToolTip="New Project"> - <Image Source="/Tango.Scripting.IDE;component/Images/NewFileCollection_16x.png" Height="16"/> + <ToolBar Style="{DynamicResource TangoToolBarStyle}" Background="{DynamicResource Background.Static}" Height="30" HorizontalAlignment="Left" Foreground="{DynamicResource ControlForegroundKey}" Margin="0,0,0,6"> + <ToolBar.Resources> + <Style TargetType="{x:Type Button}"> + <Setter Property="Width" Value="26"/> + <Style.Triggers> + <Trigger Property="IsMouseOver" Value="False"> + <Setter Property="Background" Value="Transparent" /> + <Setter Property="Opacity" Value="1.0" /> + </Trigger> + <EventTrigger RoutedEvent="MouseLeave"> + <BeginStoryboard> + <Storyboard> + <DoubleAnimation Storyboard.TargetProperty="Opacity" From="0.2" To="1"></DoubleAnimation> + </Storyboard> + </BeginStoryboard> + </EventTrigger> + <EventTrigger RoutedEvent="MouseEnter"> + <BeginStoryboard> + <Storyboard> + <DoubleAnimation Storyboard.TargetProperty="Opacity" From="0.2" To="0.2"></DoubleAnimation> + </Storyboard> + </BeginStoryboard> + </EventTrigger> + </Style.Triggers> + </Style> + </ToolBar.Resources> + + <Button Click="Button_Click" ToolTip="New Project" Style="{DynamicResource TangoToolBarButtonStyle}" > + <Image Source="/Tango.Scripting.IDE;component/Images/NewFileCollection_16x.png" Height="16" Width="16"/> + </Button> - <Button Click="Button_Click" ToolTip="Open File"> - <Image Source="/Tango.Scripting.IDE;component/Images/OpenFolder_16x.png" Height="16"/> + <Button Click="Button_Click" ToolTip="Open File" Style="{DynamicResource TangoToolBarButtonStyle}"> + <Image Source="/Tango.Scripting.IDE;component/Images/OpenFolder_16x.png" Height="16" Width="16"/> </Button> - <Button Click="Button_Click" ToolTip="Save File"> - <Image Source="/Tango.Scripting.IDE;component/Images/Save_16x.png" Height="16"/> + <Button Click="Button_Click" ToolTip="Save File" Style="{DynamicResource TangoToolBarButtonStyle}"> + <Image Source="/Tango.Scripting.IDE;component/Images/Save_16x.png" Height="16" Width="16"/> </Button> - <Button Click="Button_Click" ToolTip="Save All"> - <Image Source="/Tango.Scripting.IDE;component/Images/SaveAll_16x.png" Height="16"/> + <Button Click="Button_Click" ToolTip="Save All" Style="{DynamicResource TangoToolBarButtonStyle}"> + <Image Source="/Tango.Scripting.IDE;component/Images/SaveAll_16x.png" Height="16" Width="16"/> </Button> <Separator ></Separator> - <Button Click="Button_Click" ToolTip="Undo"> - <Image Source="/Tango.Scripting.IDE;component/Images/Undo_16x.png" Height="16"/> + <Button Click="Button_Click" ToolTip="Undo" Style="{DynamicResource TangoToolBarButtonStyle}"> + <Image Source="/Tango.Scripting.IDE;component/Images/Undo_16x.png" Height="16" Width="16"/> </Button> - <Button Click="Button_Click" ToolTip="Redo"> - <Image Source="/Tango.Scripting.IDE;component/Images/Redo_16x.png" Height="16"/> + <Button Click="Button_Click" ToolTip="Redo" Style="{DynamicResource TangoToolBarButtonStyle}"> + <Image Source="/Tango.Scripting.IDE;component/Images/Redo_16x.png" Height="16" Width="16"/> </Button> <ComboBox Style="{DynamicResource TangoComboboxStyle}" Margin="2" x:Name="cmb2" SelectedIndex="0" HorizontalContentAlignment="Stretch" Width="100" > <ComboBoxItem IsSelected="True">Debug</ComboBoxItem> @@ -89,54 +119,65 @@ <ComboBoxItem>Configuration Manager...</ComboBoxItem> </ComboBox> <Separator ></Separator> - <ToggleButton x:Name="Run_Button" Command="{Binding RunProject}" IsChecked="False"> + <ToggleButton x:Name="Run_Button" Command="{Binding RunProject}" IsChecked="{Binding IsRunProject, Mode=TwoWay}" ToolTip="Start"> <ToggleButton.Template> <ControlTemplate TargetType="{x:Type ToggleButton}"> - <StackPanel Orientation="Horizontal" > - <Path x:Name="RunArrow" + <Grid> + <Rectangle x:Name="background" Fill="Transparent" Opacity="1"/> + <StackPanel Orientation="Horizontal" > + <Path x:Name="RunArrow" HorizontalAlignment="Left" VerticalAlignment="Center" Width="12" Height="10" Margin="2,0,0,0" Stretch="Fill" Fill="#FF8DD28A" RenderTransformOrigin="0.6,0.4" Data="M0,0 L1,0 0.5,1 z" > - <Path.RenderTransform> - <TransformGroup> - <ScaleTransform/> - <SkewTransform/> - <RotateTransform Angle="270"/> - <TranslateTransform/> - </TransformGroup> - </Path.RenderTransform> - </Path> - <TextBlock x:Name="Run_Text" Margin="8,0,4,0" Text="Start" VerticalAlignment="Center"/> - </StackPanel> - <ControlTemplate.Triggers> + <Path.RenderTransform> + <TransformGroup> + <ScaleTransform/> + <SkewTransform/> + <RotateTransform Angle="270"/> + <TranslateTransform/> + </TransformGroup> + </Path.RenderTransform> + </Path> + <TextBlock x:Name="Run_Text" Margin="8,0,4,0" Text="Start" VerticalAlignment="Center"/> + </StackPanel> + </Grid> + <ControlTemplate.Triggers> <Trigger Property="IsChecked" Value="True"> - <Setter Property="Foreground" TargetName="Run_Text" Value="{DynamicResource Inactive.Selection}"/> - <Setter Property="Fill" TargetName="RunArrow" Value="{DynamicResource Inactive.Selection}"/> + <Setter Property="Foreground" TargetName="Run_Text" Value="{DynamicResource ToggleButton.Checked.Foreground}"/> + <Setter Property="Fill" TargetName="RunArrow" Value="{DynamicResource ToggleButton.Checked.Foreground}"/> <Setter Property="Text" TargetName="Run_Text" Value="Continue"/> + <Setter Property="ToggleButton.ToolTip" Value="Continue"/> </Trigger> - </ControlTemplate.Triggers> - </ControlTemplate> - </ToggleButton.Template> + <MultiTrigger> + <MultiTrigger.Conditions> + <Condition Property="IsChecked" Value="False" /> + <Condition Property="IsMouseOver" Value="True" /> + </MultiTrigger.Conditions> + <Setter Property="Fill" TargetName="background" Value="{DynamicResource Toolbar.Button.MaouseMove.Background}"/> + </MultiTrigger> + </ControlTemplate.Triggers> + </ControlTemplate> + </ToggleButton.Template> </ToggleButton> - <Button Click="Button_Click" ToolTip="Pause" Visibility="{Binding IsChecked, ElementName=Run_Button, Converter={StaticResource BoolToVis}}"> - <Image Source="/Tango.Scripting.IDE;component/Images/Pause_16x.png" Height="16"/> + <Button Click="Button_Click" ToolTip="Pause" Visibility="{Binding IsChecked, ElementName=Run_Button, Converter={StaticResource BoolToVis}}" Style="{DynamicResource TangoToolBarButtonStyle}"> + <Image Source="/Tango.Scripting.IDE;component/Images/Pause_16x.png" Height="16" Width="16"/> </Button> - <Button Click="Button_Click" ToolTip="Stop" Visibility="{Binding IsChecked, ElementName=Run_Button, Converter={StaticResource BoolToVis}}"> - <Image Source="/Tango.Scripting.IDE;component/Images/stop.png" Height="16"/> + <Button x:Name="StopButton" ToolTip="Stop" Command="{Binding StopProject}" Visibility="{Binding IsChecked, ElementName=Run_Button, Converter={StaticResource BoolToVis}}" Style="{DynamicResource TangoToolBarButtonStyle}"> + <Image Source="/Tango.Scripting.IDE;component/Images/stop.png" Height="16" Width="16"/> </Button> - </ToolBar> </ToolBarTray> <Grid Grid.Row="2"> <Grid.ColumnDefinitions> + <ColumnDefinition Width="15" /> <ColumnDefinition Width="1*" MinWidth="100" /> <ColumnDefinition Width="5"/> <ColumnDefinition Width="300" MinWidth="20" /> </Grid.ColumnDefinitions> - <Grid> + <Grid Grid.Column="1"> <Grid.RowDefinitions> <RowDefinition Height="1*" MinHeight="100" /> <RowDefinition Height="5"/> @@ -161,38 +202,69 @@ <GridSplitter HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Row="1" Background="{DynamicResource Background.Static}" /> <Grid Grid.Row="2" Background="{DynamicResource Background.Static}"> - <Border BorderThickness="0" Margin="1,0,0,2"> + <!--<Border BorderThickness="0" Margin="1,0,0,2">--> <TabControl TabStripPlacement="Bottom" Style="{DynamicResource TangoTabControlStyle}"> <TabItem Header="Error list"> - <DataGrid Background="{DynamicResource TabItem.Content.Static}" Style="{DynamicResource TangoDataGridStyle}" Padding="2,5,2,0" - ColumnHeaderStyle="{DynamicResource TangoDataGridColumnHeaderStyle}" ItemsSource="{Binding ErrorList}" - CanUserSortColumns="True" - CanUserResizeColumns="True" - IsReadOnly="True"/> + <GroupBox Header="Error List" BorderThickness="1" Style="{DynamicResource TangoGroupBoxStyle}" Margin="-1"> + <DataGrid Background="{DynamicResource TabItem.Content.Static}" Style="{DynamicResource TangoDataGridStyle}" Padding="2,5,2,0" + ColumnHeaderStyle="{DynamicResource TangoDataGridColumnHeaderStyle}" ItemsSource="{Binding ErrorList}" + CanUserSortColumns="True" CanUserResizeColumns="True" IsReadOnly="True"/> + </GroupBox> </TabItem> <TabItem Header="Output"> - <ListBox ScrollViewer.VerticalScrollBarVisibility="Visible" - ScrollViewer.HorizontalScrollBarVisibility="Visible"> - - </ListBox> + <GroupBox Header="Output" BorderThickness="1" Style="{DynamicResource TangoGroupBoxStyle}" Margin="-1"> + <TextBox TextWrapping="Wrap" VerticalScrollBarVisibility="Auto" AcceptsReturn="True" Name="OutputText" Background="{DynamicResource TabItem.Content.Static}" /> + </GroupBox> </TabItem> </TabControl> - </Border> + <!--</Border>--> </Grid> </Grid> - <GridSplitter HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Column="1" Background="{DynamicResource Background.Static}" /> + <GridSplitter HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Column="2" Background="{DynamicResource Background.Static}" /> - <Grid Grid.Column="2"> - <GroupBox Margin="0,0,5,5" Header="Solution Explorer" BorderThickness="1" Style="{DynamicResource TangoGroupBoxStyle}" > - <TreeView Style="{DynamicResource TangoTreeViewStyle}" ItemsSource="{Binding Solution.Projects}" Background="{DynamicResource TabItem.Content.Static}" Padding="0,8,0,0"> + <Grid Grid.Column="3"> + <Grid.RowDefinitions> + <RowDefinition Height="1*" MinHeight="100"/> + <RowDefinition Height="5"/> + <RowDefinition Height="100" MinHeight="20"/> + <RowDefinition Height="4"/> + </Grid.RowDefinitions> + <GroupBox Grid.Row="0" Margin="0,0,5,0" Header="Solution Explorer" BorderThickness="1" Style="{DynamicResource TangoGroupBoxStyle}" > + <TreeView Style="{DynamicResource TangoTreeViewStyle}" x:Name="SolutionTree" ItemsSource="{Binding Solution.Projects}" Background="{DynamicResource TabItem.Content.Static}" Padding="0,8,0,0" SelectedItemChanged="TreeViewControl_SelectedItemChanged" PreviewMouseRightButtonDown="SolutionTree_PreviewMouseRightButtonDown" > <TreeView.ItemTemplate> <HierarchicalDataTemplate ItemsSource="{Binding Path=Items}" DataType="{x:Type local:IProject}"> <controls:SolutionItemControl SolutionItem="{Binding}" OpenCommand="{Binding ElementName=control,Path=DataContext.OpenProjectItemCommand}" /> </HierarchicalDataTemplate> </TreeView.ItemTemplate> + <TreeView.Resources> + <ContextMenu x:Key ="SolutionContext" StaysOpen="true" BorderBrush="{DynamicResource Background.Static}" Foreground="{DynamicResource ControlForegroundKey}"> + <MenuItem Header="Add" > + <MenuItem Header="New Project..." Command="{Binding AddProjectCommand}"/> + </MenuItem> + <MenuItem Header="Rename"/> + </ContextMenu> + <ContextMenu x:Key="FolderContext" StaysOpen="true" > + <MenuItem Header="Rename"/> + <MenuItem Header="Remove"/> + <Separator/> + <MenuItem Header="Copy"/> + <MenuItem Header="Cut"/> + <MenuItem Header="Paste"/> + <MenuItem Header="Move"/> + </ContextMenu> + </TreeView.Resources> + </TreeView> </GroupBox> + <GridSplitter Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="{DynamicResource Background.Static}" /> + <GroupBox Grid.Row="2" Margin="0,0,5,2" Header="Properties" BorderThickness="1" Style="{DynamicResource TangoGroupBoxStyle}" > + <!--<Border BorderThickness="0" Margin="1,0,0,2">--> + <DataGrid Background="{DynamicResource TabItem.Content.Static}" Style="{DynamicResource TangoDataGridStyle}" Padding="2,5,2,0" + ColumnHeaderStyle="{DynamicResource TangoDataGridColumnHeaderStyle}" ItemsSource="{Binding ErrorList}" + CanUserSortColumns="True" CanUserResizeColumns="True" IsReadOnly="True"/> + <!--</Border>--> + </GroupBox> </Grid> </Grid> </Grid> diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEView2.xaml.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEView2.xaml.cs index 27251851c..5e4509beb 100644 --- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEView2.xaml.cs +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEView2.xaml.cs @@ -57,5 +57,37 @@ namespace Tango.Scripting.IDE { MessageBox.Show("I am here"); } + private void TreeViewControl_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e) + { + + IProject SelectedItem = SolutionTree.SelectedItem as IProject; + if(SelectedItem != null && DataContext is ScriptIDEViewVM && ((ScriptIDEViewVM)DataContext).IsSolutionProject(SelectedItem)) + { + SolutionTree.ContextMenu = SolutionTree.Resources["SolutionContext"] as System.Windows.Controls.ContextMenu; + } + else + { + SolutionTree.ContextMenu = SolutionTree.Resources["FolderContext"] as System.Windows.Controls.ContextMenu; + } + } + + private void SolutionTree_PreviewMouseRightButtonDown(object sender, MouseButtonEventArgs e) + { + TreeViewItem treeViewItem = VisualUpwardSearch(e.OriginalSource as DependencyObject); + + if (treeViewItem != null) + { + //treeViewItem.Focus(); + treeViewItem.IsSelected = true; + e.Handled = true; + } + } + static TreeViewItem VisualUpwardSearch(DependencyObject source) + { + while (source != null && !(source is TreeViewItem)) + source = VisualTreeHelper.GetParent(source); + + return source as TreeViewItem; + } } } diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEViewVM.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEViewVM.cs index 3fc0ce0e1..d8a744fea 100644 --- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEViewVM.cs +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEViewVM.cs @@ -1,20 +1,24 @@ using System; using System.Collections.Generic; using System.Collections.ObjectModel; +using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; +using System.Windows.Controls; using System.Windows.Media.Imaging; using Tango.Core.Commands; using Tango.Scripting.IDE.Controls; +using Tango.Scripting.IDE.Dialogs; +using Tango.Scripting.IDE.Notifications; using Tango.Scripting.IDE.Projects; using Tango.Scripting.IDE.ProjectTypes; using Tango.SharedUI; namespace Tango.Scripting.IDE { - public class ScriptIDEViewVM : ViewModel + public class ScriptIDEViewVM : IDEViewModel { private List<IProjectType> _projectTypes; public ObservableCollection<ErrorData> ErrorList { get; set; } @@ -48,21 +52,34 @@ namespace Tango.Scripting.IDE get { return _openProjectItems; } set { _openProjectItems = value; RaisePropertyChangedAuto(); } } - + private bool _isRunProject = false; + public bool IsRunProject + { + get { return _isRunProject; } + set + { + if (_isRunProject != value) + { + _isRunProject = value; RaisePropertyChangedAuto(); + } + } + } #endregion #region Commands public RelayCommand NewProjectCommand { get; set; } + public RelayCommand AddProjectCommand { get; set; } public RelayCommand<IProjectItem> OpenProjectItemCommand { get; set; } public RelayCommand<IProjectItem> CloseProjectItemCommand { get; set; } public RelayCommand RunProject { get; set; } + public RelayCommand StopProject { get; set; } #endregion #region Constructors - public ScriptIDEViewVM() + public ScriptIDEViewVM() : base() { _projectTypes = new List<IProjectType>(); OpenProjectItems = new ObservableCollection<IProjectItem>(); @@ -76,14 +93,22 @@ namespace Tango.Scripting.IDE //Init Commands NewProjectCommand = new RelayCommand(AddNewProject); + AddProjectCommand = new RelayCommand(AddProject); OpenProjectItemCommand = new RelayCommand<IProjectItem>(OpenProjectItem); CloseProjectItemCommand = new RelayCommand<IProjectItem>(CloseProjectItem); RunProject = new RelayCommand(RunProjectCommand); + StopProject = new RelayCommand(StopRunProjectCommand); + + NotificationManager = new DefaultNotificationManager(); } private void RunProjectCommand(object obj) { - MessageBox.Show("You said: RunProjectCommand"); + // MessageBox.Show("You said: RunProjectCommand"); + } + private void StopRunProjectCommand(object obj) + { + IsRunProject = false; } #endregion @@ -119,14 +144,36 @@ namespace Tango.Scripting.IDE /// <summary> /// Open a dialog to create a new project /// </summary> - private void AddNewProject() + private async void AddNewProject() { - Dialogs.NewProjectDialog dialog = new Dialogs.NewProjectDialog(true); - if(dialog.ShowDialog() == true) + var vm = await NotificationManager.ShowDialog<NewProjectViewVM>(); + + if (vm.DialogResult) { - MessageBox.Show("You said: OK"); + } } + private async void AddProject() + { + var vm = await NotificationManager.ShowDialog<AddProjectViewVM>(new AddProjectViewVM() + { + //ProjectLocation = Directory.GetParent(Environment.CurrentDirectory).Parent.Parent.FullName + //ProjectLocation = Path.GetDirectoryName(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase)) + //ProjectLocation = "Current Solution folder..." + }); + + if (vm.DialogResult) + { + + } + } + public bool IsSolutionProject(IProject SelectedItem) + { + if (SelectedItem is StubProject) + return true; + return false; + + } #endregion } } diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Tango.Scripting.IDE.csproj b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Tango.Scripting.IDE.csproj index 0c53ed629..ea47eb8f7 100644 --- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Tango.Scripting.IDE.csproj +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Tango.Scripting.IDE.csproj @@ -37,6 +37,12 @@ <Reference Include="MahApps.Metro, Version=1.5.0.23, Culture=neutral, PublicKeyToken=f4fb5a3c4d1e5b4f, processorArchitecture=MSIL"> <HintPath>..\packages\MahApps.Metro.1.5.0\lib\net45\MahApps.Metro.dll</HintPath> </Reference> + <Reference Include="Microsoft.WindowsAPICodePack"> + <HintPath>..\..\..\packages\WindowsAPICodePack-Core.1.1.1\lib\Microsoft.WindowsAPICodePack.dll</HintPath> + </Reference> + <Reference Include="Microsoft.WindowsAPICodePack.Shell"> + <HintPath>..\..\..\packages\WindowsAPICodePack-Shell.1.1.1\lib\Microsoft.WindowsAPICodePack.Shell.dll</HintPath> + </Reference> <Reference Include="PresentationFramework.Aero2" /> <Reference Include="System" /> <Reference Include="System.Data" /> @@ -70,15 +76,24 @@ <Compile Include="Controls\SharedResourceDictionary.cs" /> <Compile Include="Controls\SolutionItemControl.cs" /> <Compile Include="Controls\TabConrolClose.cs" /> - <Compile Include="Dialogs\AddNewControl.xaml.cs"> - <DependentUpon>AddNewControl.xaml</DependentUpon> + <Compile Include="Converters\LeftMarginMultiplierConverter.cs" /> + <Compile Include="Dialogs\CommonOpenFileDialog.cs" /> + <Compile Include="Dialogs\NewProjectView.xaml.cs"> + <DependentUpon>NewProjectView.xaml</DependentUpon> </Compile> - <Compile Include="Dialogs\NewProjectDialog.xaml.cs"> - <DependentUpon>NewProjectDialog.xaml</DependentUpon> + <Compile Include="Dialogs\AddProjectView.xaml.cs"> + <DependentUpon>AddProjectView.xaml</DependentUpon> </Compile> - <Compile Include="Dialogs\NewProjectDialogVM.cs" /> + <Compile Include="Dialogs\AddProjectViewVM.cs" /> + <Compile Include="Dialogs\BaseProjectDialogVM.cs" /> + <Compile Include="Dialogs\NewProjectViewVM.cs" /> + <Compile Include="IDEDialogViewModel.cs" /> + <Compile Include="IDEViewModel.cs" /> <Compile Include="IProjectType.cs" /> <Compile Include="ISolutionItem.cs" /> + <Compile Include="Notifications\DefaultNotificationManager.cs" /> + <Compile Include="Notifications\INotificationManager.cs" /> + <Compile Include="Notifications\ProgressNotificationHandler.cs" /> <Compile Include="ProjectItem.cs" /> <Compile Include="ProjectItemsViews\CSharpScriptItemView.xaml.cs"> <DependentUpon>CSharpScriptItemView.xaml</DependentUpon> @@ -104,11 +119,14 @@ <Compile Include="Solution.cs" /> <Compile Include="Projects\StubProject.cs" /> <Compile Include="ViewModelLocator.cs" /> - <Page Include="Dialogs\AddNewControl.xaml"> + <Compile Include="Windows\DialogWindow.xaml.cs"> + <DependentUpon>DialogWindow.xaml</DependentUpon> + </Compile> + <Page Include="Dialogs\NewProjectView.xaml"> <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> </Page> - <Page Include="Dialogs\NewProjectDialog.xaml"> + <Page Include="Dialogs\AddProjectView.xaml"> <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> </Page> @@ -176,6 +194,10 @@ <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> </Page> + <Page Include="Windows\DialogWindow.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> </ItemGroup> <ItemGroup> <Compile Include="Properties\AssemblyInfo.cs"> @@ -224,9 +246,7 @@ <ItemGroup> <Resource Include="Images\StubProject.png" /> </ItemGroup> - <ItemGroup> - <Folder Include="Converters\" /> - </ItemGroup> + <ItemGroup /> <ItemGroup> <Resource Include="Images\Save_16x.png" /> </ItemGroup> diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/ButtonStyle.xaml b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/ButtonStyle.xaml index 21ed3b4b8..f30adc85d 100644 --- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/ButtonStyle.xaml +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/ButtonStyle.xaml @@ -31,7 +31,6 @@ <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource Button.MouseOver.Border}"/> </Trigger> <Trigger Property="IsMouseOver" Value="true"> - <Setter Property="Background" TargetName="border" Value="{DynamicResource Button.MouseOver.Background}"/> <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource Button.MouseOver.Border}"/> </Trigger> <Trigger Property="IsPressed" Value="true"> @@ -48,5 +47,35 @@ </Setter.Value> </Setter> </Style> - + <Style x:Key="TangoToolBarButtonStyle" TargetType="{x:Type Button}"> + <Setter Property="Width" Value="26"/> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type Button}"> + <Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="true"> + <Grid> + <Rectangle x:Name="background" Fill="Transparent" Opacity="1"/> + <ContentPresenter x:Name="contentPresenter" Focusable="False" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/> + </Grid> + </Border> + <ControlTemplate.Triggers> + <Trigger Property="IsDefaulted" Value="true"> + <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/> + </Trigger> + <Trigger Property="IsMouseOver" Value="true"> + <Setter Property="Fill" TargetName="background" Value="{DynamicResource Toolbar.Button.MaouseMove.Background}"/> + </Trigger> + <Trigger Property="IsPressed" Value="true"> + <Setter Property="Fill" TargetName="background" Value="{DynamicResource ControlBrushColorKey}"/> + </Trigger> + <Trigger Property="IsEnabled" Value="false"> + <Setter Property="Background" TargetName="border" Value="{DynamicResource Button.Disabled.Background}"/> + <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource Button.Disabled.Border}"/> + <Setter Property="TextElement.Foreground" TargetName="contentPresenter" Value="{DynamicResource Button.Disabled.Foreground}"/> + </Trigger> + </ControlTemplate.Triggers> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> </ResourceDictionary>
\ No newline at end of file diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/DarkThemesColors.xaml b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/DarkThemesColors.xaml index 011b26c0d..caab88ef1 100644 --- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/DarkThemesColors.xaml +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/DarkThemesColors.xaml @@ -21,6 +21,7 @@ <SolidColorBrush x:Key="HighlightTextBrushKey" Color="#FFF0F0F0"/> <SolidColorBrush x:Key="ListBorder" Color="#FF3F3F46"/> <SolidColorBrush x:Key="Inactive.Selection" Color="#FF444444"/> + <SolidColorBrush x:Key="ContextMenu.MouseOverColor" Color="#FF333334"/> <SolidColorBrush x:Key="TabItem.Selected.Background" Color="#FF007ACC"/> @@ -93,5 +94,7 @@ <SolidColorBrush x:Key="Button.Disabled.Background" Color="#FF252526"/> <SolidColorBrush x:Key="Button.Disabled.Border" Color="#FF434346"/> <SolidColorBrush x:Key="Button.Disabled.Foreground" Color="#FF434346"/> + <SolidColorBrush x:Key="Toolbar.Button.MaouseMove.Background" Color="#FF3E3E40"/> + <SolidColorBrush x:Key="ToggleButton.Checked.Foreground" Color="#FF4E4E50"/> </ResourceDictionary>
\ No newline at end of file diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/MenuDict.xaml b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/MenuDict.xaml index b2c3fd965..f51a50b50 100644 --- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/MenuDict.xaml +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/MenuDict.xaml @@ -15,7 +15,7 @@ <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Menu}"> - <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="0" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true"> + <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="1" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true"> <ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" /> </Border> </ControlTemplate> @@ -49,11 +49,15 @@ <!-- TopLevelHeader --> <ControlTemplate x:Key="{x:Static MenuItem.TopLevelHeaderTemplateKey}" TargetType="{x:Type MenuItem}"> <Grid x:Name="Border" Background="Transparent" Margin="0,2,0,2"> + <Rectangle x:Name="Bg" Fill="Transparent" /> <Rectangle x:Name="Inner_Border" Margin="4" Fill="Transparent"/> <ContentPresenter Margin="8,2,8,2" ContentSource="Header" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/> - <Popup x:Name="Popup" Placement="Bottom" IsOpen="{TemplateBinding IsSubmenuOpen}" AllowsTransparency="True" Focusable="False" PopupAnimation="Fade"> - <Border x:Name="SubmenuBorder" BorderBrush="Transparent" BorderThickness="0" Background="{DynamicResource Menu.Background}" Padding="2"> + <Popup x:Name="Popup" Placement="Bottom" IsOpen="{TemplateBinding IsSubmenuOpen}" AllowsTransparency="True" Focusable="False" PopupAnimation="Fade" HorizontalOffset="2"> + <Border x:Name="SubmenuBorder" BorderBrush="{DynamicResource MenuItemHighlightedBackground}" BorderThickness="1" Background="{DynamicResource Menu.Background}" Padding="2" Margin="0,0,8,8"> + <Border.Effect> + <DropShadowEffect BlurRadius="6" Opacity="0.5" ShadowDepth="4" Direction="330"/> + </Border.Effect> <Grid RenderOptions.ClearTypeHint="Enabled" Background="Transparent"> <ItemsPresenter x:Name="ItemsPresenter" KeyboardNavigation.DirectionalNavigation="Cycle" Grid.IsSharedSizeScope="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" KeyboardNavigation.TabNavigation="Cycle"/> </Grid> @@ -68,7 +72,7 @@ <Setter Property="Fill" TargetName="Bg" Value="{DynamicResource Menu.Submenu.MouseOverColor}"/> </Trigger> <Trigger SourceName="Popup" Property="AllowsTransparency" Value="True"> - <Setter TargetName="SubmenuBorder" Property="CornerRadius" Value="0,0,4,4" /> + <Setter TargetName="SubmenuBorder" Property="CornerRadius" Value="0,0,0,0" /> <Setter TargetName="SubmenuBorder" Property="Padding" Value="0,0,0,3" /> </Trigger> <Trigger Property="IsEnabled" Value="False"> @@ -120,7 +124,10 @@ <TextBlock Grid.Column="2" Margin="10,0,0,0" Text="{TemplateBinding InputGestureText}" VerticalAlignment="Center"/> <Path x:Name="RightArrow" Grid.Column="3" HorizontalAlignment="Center" VerticalAlignment="Center" Data="M 0 0 L 0 7 L 4 3.5 Z" Fill="{DynamicResource Grip.Submenu.Background.Static}" Margin="8,0,0,0"/> <Popup x:Name="popup" PlacementTarget="{Binding ElementName=_grid}" Placement="Right" HorizontalOffset="0" AllowsTransparency="True" Focusable="False" PopupAnimation="Fade"> - <Border x:Name="SubmenuBorder" SnapsToDevicePixels="True" Background="{DynamicResource Menu.Submenu.Background}" BorderThickness="0" BorderBrush="#49a3e1"> + <Border x:Name="SubmenuBorder" SnapsToDevicePixels="True" Background="{DynamicResource Menu.Submenu.Background}" BorderThickness="1" BorderBrush="{DynamicResource MenuItemHighlightedBackground}" Margin="0,0,10,10"> + <Border.Effect> + <DropShadowEffect BlurRadius="6" Opacity="0.5" ShadowDepth="4" Direction="330" /> + </Border.Effect> <ItemsPresenter x:Name="_items" /> </Border> </Popup> @@ -134,6 +141,7 @@ <Setter Property="Fill" TargetName="Bg" Value="{DynamicResource Menu.Submenu.MouseOverColor}"/> <Setter Property="Fill" TargetName="Inner_Border" Value="{DynamicResource Menu.Submenu.MouseOverColor}"/> <Setter TargetName="RightArrow" Property="Fill" Value="{DynamicResource Grip.Submenu.Background.Selected}"/> + </Trigger> <Trigger Property="IsEnabled" Value="False"> <Setter Property="Foreground" Value="{DynamicResource Menu.Disable.Foreground}"/> @@ -181,4 +189,41 @@ </Setter.Value> </Setter> </Style> + + <Style TargetType="{x:Type ContextMenu}"> + <Setter Property="SnapsToDevicePixels" Value="True" /> + <Setter Property="OverridesDefaultStyle" Value="True" /> + <Setter Property="Grid.IsSharedSizeScope" Value="true" /> + <Setter Property="HasDropShadow" Value="True" /> + <Setter Property="Foreground" Value="{DynamicResource ControlTextBrush}"></Setter> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type ContextMenu}"> + <Border x:Name="Border" Background="{DynamicResource Background.Static}" BorderThickness="1" BorderBrush="{DynamicResource Inactive.Selection}"> + <Border.Effect> + <DropShadowEffect Color="Black" Direction="135" Opacity="0.8" ShadowDepth="2"/> + </Border.Effect> + <StackPanel IsItemsHost="True" KeyboardNavigation.DirectionalNavigation="Cycle"/> + </Border> + <ControlTemplate.Triggers> + <Trigger Property="IsMouseOver" Value="true"> + <Setter TargetName="Border" Property="Background" Value="{DynamicResource Menu.Submenu.Background}" /> + <Setter TargetName="Border" Property="BorderBrush" Value="{DynamicResource ContextMenu.MouseOverColor}" /> + </Trigger> + <Trigger Property="HasDropShadow" Value="true"> + <Setter TargetName="Border" Property="Padding" Value="0,3,0,3" /> + </Trigger> + </ControlTemplate.Triggers> + </ControlTemplate> + </Setter.Value> + </Setter> + <Style.Resources> + <Style TargetType="{x:Type MenuItem}"> + <Setter Property="Background" Value="{DynamicResource Menu.Submenu.Background}"></Setter> + <Setter Property="Foreground" Value="{DynamicResource ControlTextBrush}"></Setter> + <Setter Property="Margin" Value="1,0,1,0"></Setter> + </Style> + </Style.Resources> + </Style> + </ResourceDictionary>
\ No newline at end of file diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/ToolbarStyle.xaml b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/ToolbarStyle.xaml index 2cc24d31e..6223934b5 100644 --- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/ToolbarStyle.xaml +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/ToolbarStyle.xaml @@ -188,6 +188,38 @@ <Setter Property="Background" Value="{DynamicResource ControlBrushColorKey}"/> </DataTrigger> </Style.Triggers> + <Style.Resources> + <Style TargetType="{x:Type Button}"> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type Button}"> + <Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="true"> + <Grid> + <Rectangle x:Name="background" Fill="Transparent" Opacity="1"/> + <ContentPresenter x:Name="contentPresenter" Focusable="False" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/> + </Grid> + </Border> + <ControlTemplate.Triggers> + <Trigger Property="IsDefaulted" Value="true"> + <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/> + </Trigger> + <Trigger Property="IsMouseOver" Value="true"> + <Setter Property="Fill" TargetName="background" Value="{DynamicResource Toolbar.Button.MaouseMove.Background}"/> + </Trigger> + <Trigger Property="IsPressed" Value="true"> + <Setter Property="Fill" TargetName="background" Value="{DynamicResource ControlBrushColorKey}"/> + </Trigger> + <Trigger Property="IsEnabled" Value="false"> + <Setter Property="Background" TargetName="border" Value="{DynamicResource Button.Disabled.Background}"/> + <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource Button.Disabled.Border}"/> + <Setter Property="TextElement.Foreground" TargetName="contentPresenter" Value="{DynamicResource Button.Disabled.Foreground}"/> + </Trigger> + </ControlTemplate.Triggers> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + </Style.Resources> </Style> <Style x:Key="{x:Static ToolBar.SeparatorStyleKey}" TargetType="{x:Type Separator}"> diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/TreeViewItem.xaml b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/TreeViewItem.xaml index f37744004..4814368d0 100644 --- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/TreeViewItem.xaml +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Themes/TreeViewItem.xaml @@ -1,6 +1,7 @@ <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" - xmlns:local="clr-namespace:Tango.Scripting.IDE.Themes"> + xmlns:local="clr-namespace:Tango.Scripting.IDE.Themes" + xmlns:conv="clr-namespace:Tango.Scripting.IDE.Converters"> <Style x:Key="TangoTreeViewStyle" TargetType="{x:Type TreeView}"> <Setter Property="Background" Value="{DynamicResource TreeBackgroundColor}"/> <Setter Property="BorderBrush" Value="{DynamicResource ListBorder}"/> @@ -104,22 +105,23 @@ <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type TreeViewItem}"> - <Grid x:Name="GridTreeItem"> - <Grid.ColumnDefinitions> - <ColumnDefinition MinWidth="19" Width="Auto"/> - <ColumnDefinition Width="Auto"/> - <ColumnDefinition Width="*"/> - </Grid.ColumnDefinitions> - <Grid.RowDefinitions> - <RowDefinition Height="Auto"/> - <RowDefinition/> - </Grid.RowDefinitions> - <ToggleButton x:Name="Expander" ClickMode="Press" IsChecked="{Binding IsExpanded, RelativeSource={RelativeSource TemplatedParent}}" Style="{StaticResource ExpandCollapseToggleStyle}"/> - <Border x:Name="Bd" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Grid.Column="1" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true"> - <ContentPresenter x:Name="PART_Header" ContentSource="Header" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/> + <ControlTemplate.Resources> + <conv:LeftMarginMultiplierConverter Length="19" x:Key="lengthConverter" /> + </ControlTemplate.Resources> + <StackPanel> + <Border x:Name="Bd" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true"> + <Grid x:Name="GridTreeItem" Margin="{Binding Converter={StaticResource lengthConverter}, + RelativeSource={RelativeSource TemplatedParent}}"> + <Grid.ColumnDefinitions> + <ColumnDefinition MinWidth="19" Width="Auto"/> + <ColumnDefinition Width="*"/> + </Grid.ColumnDefinitions> + <ToggleButton x:Name="Expander" ClickMode="Press" IsChecked="{Binding IsExpanded, RelativeSource={RelativeSource TemplatedParent}}" Style="{StaticResource ExpandCollapseToggleStyle}"/> + <ContentPresenter x:Name="PART_Header" ContentSource="Header" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/> + </Grid> </Border> - <ItemsPresenter x:Name="ItemsHost" Grid.ColumnSpan="2" Grid.Column="1" Grid.Row="1"/> - </Grid> + <ItemsPresenter x:Name="ItemsHost"/> + </StackPanel> <ControlTemplate.Triggers> <Trigger Property="IsExpanded" Value="false"> <Setter Property="Visibility" TargetName="ItemsHost" Value="Collapsed"/> @@ -127,8 +129,22 @@ <Trigger Property="HasItems" Value="false"> <Setter Property="Visibility" TargetName="Expander" Value="Hidden"/> </Trigger> - <Trigger Property="IsSelected" Value="true"> - <Setter Property="Background" TargetName="GridTreeItem" Value="{DynamicResource ControlBrushColorKey}"/> + <MultiTrigger> + <MultiTrigger.Conditions> + <Condition Property="HasHeader" Value="false"/> + <Condition Property="Width" Value="Auto"/> + </MultiTrigger.Conditions> + <Setter TargetName="PART_Header" Property="MinWidth" Value="75"/> + </MultiTrigger> + <MultiTrigger> + <MultiTrigger.Conditions> + <Condition Property="HasHeader" Value="false"/> + <Condition Property="Height" Value="Auto"/> + </MultiTrigger.Conditions> + <Setter TargetName="PART_Header" Property="MinHeight" Value="19"/> + </MultiTrigger> + <Trigger Property="IsSelected" Value="true"> + <Setter Property="Background" TargetName="Bd" Value="{DynamicResource ControlBrushColorKey}"/> <Setter Property="Foreground" Value="{DynamicResource HighlightTextBrushKey}"/> </Trigger> <MultiTrigger> @@ -136,11 +152,11 @@ <Condition Property="IsSelected" Value="true"/> <Condition Property="IsSelectionActive" Value="false"/> </MultiTrigger.Conditions> - <Setter Property="Background" TargetName="GridTreeItem" Value="{DynamicResource Inactive.Selection}"/> - <Setter Property="Foreground" Value="{DynamicResource ControlTextBrush}"/> + <Setter Property="Background" TargetName="GridTreeItem" Value="{DynamicResource ControlBrushColorKey}"/> + <Setter Property="Foreground" Value="{DynamicResource HighlightTextBrushKey}"/> </MultiTrigger> <Trigger Property="IsEnabled" Value="false"> - <Setter Property="Foreground" Value="{DynamicResource ControlTextBrush}"/> + <Setter Property="Foreground" Value="{DynamicResource Inactive.Selection}"/> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ViewModelLocator.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ViewModelLocator.cs index 71cb6cd19..ffe78f49d 100644 --- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ViewModelLocator.cs +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ViewModelLocator.cs @@ -5,6 +5,7 @@ using System.Text; using System.Threading.Tasks; using Tango.Core.DI; using Tango.Scripting.IDE.Dialogs; +using Tango.Scripting.IDE.Notifications; namespace Tango.Scripting.IDE { @@ -19,15 +20,7 @@ namespace Tango.Scripting.IDE /// </summary> static ViewModelLocator() { - TangoIOC.Default.Register<NewProjectDialogVM>(); - } - - public static NewProjectDialogVM NewProjectDialogVM - { - get - { - return TangoIOC.Default.GetInstance<NewProjectDialogVM>(); - } + TangoIOC.Default.Register<INotificationManager, DefaultNotificationManager>(); } } } diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Windows/DialogWindow.xaml b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Windows/DialogWindow.xaml new file mode 100644 index 000000000..218a92302 --- /dev/null +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Windows/DialogWindow.xaml @@ -0,0 +1,28 @@ +<mahapps:MetroWindow x:Class="Tango.Scripting.IDE.Windows.DialogWindow" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:local="clr-namespace:Tango.Scripting.IDE.Windows" + mc:Ignorable="d" + Title="Some Title" Height="800" Width="800" + SizeToContent="WidthAndHeight" + ResizeMode="NoResize" + ShowMaxRestoreButton="False" + ShowMinButton="False" + ShowCloseButton="False" + BorderThickness="1" BorderBrush="Gray"> + <Window.Resources> + <ResourceDictionary> + <ResourceDictionary.MergedDictionaries> + <ResourceDictionary Source="/Tango.Scripting.IDE;component/Themes/DarkThemesColors.xaml"/> + <ResourceDictionary Source="/Tango.Scripting.IDE;component/Themes/ButtonStyle.xaml"/> + </ResourceDictionary.MergedDictionaries> + </ResourceDictionary> + </Window.Resources> + + <Grid> + + </Grid> +</mahapps:MetroWindow> diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Windows/DialogWindow.xaml.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Windows/DialogWindow.xaml.cs new file mode 100644 index 000000000..cfddd09e3 --- /dev/null +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Windows/DialogWindow.xaml.cs @@ -0,0 +1,28 @@ +using MahApps.Metro.Controls; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace Tango.Scripting.IDE.Windows +{ + /// <summary> + /// Interaction logic for DialogWindow.xaml + /// </summary> + public partial class DialogWindow : MetroWindow + { + public DialogWindow() + { + InitializeComponent(); + } + } +} |
