Skip to content

Commit

Permalink
Merge pull request #228 from hcmlab/develop
Browse files Browse the repository at this point in the history
added hotkeys (0-9) for continuous annotations
  • Loading branch information
tobiasbaur authored Jun 9, 2017
2 parents 8101025 + 1c32e39 commit 3fdfe25
Show file tree
Hide file tree
Showing 14 changed files with 135 additions and 11 deletions.
32 changes: 27 additions & 5 deletions Controls/Annotation/AnnoTier.cs
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ public partial class AnnoTierStatic : Canvas
public static bool continuousAnnoMode = false;
public static bool askForLabel = false;
public static AnnoTierSegment objectContainer = null;
public static bool MouseActive = true;

static public event AnnoTierChangeEventHandler OnTierChange;

Expand Down Expand Up @@ -290,15 +291,35 @@ public AnnoTier(AnnoList anno)
closestIndex = GetClosestContinuousIndex(closestposition);
if (closestIndex > -1)
{
if (this == Mouse.DirectlyOver || (Mouse.GetPosition(this).Y > 0 &&
Mouse.GetPosition(this).Y < this.ActualHeight && continuousTierEllipse == Mouse.DirectlyOver))
{
double normal = 1.0 - (Mouse.GetPosition(this).Y / this.ActualHeight);
continuousTierEllipse.Visibility = Visibility.Visible;

Point relativePoint = continuousTierEllipse.TransformToAncestor(this).Transform(new Point(0, 0));
double yPos = relativePoint.Y + continuousTierEllipse.Height / 2;

if ((this == Mouse.DirectlyOver || (Mouse.GetPosition(this).Y > 0 && Mouse.GetPosition(this).Y < this.ActualHeight && continuousTierEllipse == Mouse.DirectlyOver)) && MouseActive)
yPos = Mouse.GetPosition(this).Y;




double numberoflevels = Properties.Settings.Default.ContinuousHotkeysNumber;
double fac = 1 + (1 / (numberoflevels - 1));
double segmentheight = (this.ActualHeight / numberoflevels);

for (int i=0; i< numberoflevels; i++)
{
if (Keyboard.IsKeyDown(Key.D1 + i) )
yPos = (numberoflevels - (i* fac)) * segmentheight;
}


double normal = 1.0 - (yPos / this.ActualHeight);
double normalized = (normal * range) + anno.Scheme.MinScore;

continuousTierEllipse.Height = this.ActualHeight / 10;
continuousTierEllipse.Width = continuousTierEllipse.Height;
continuousTierEllipse.SetValue(Canvas.TopProperty, (Mouse.GetPosition(this).Y - continuousTierEllipse.Height / 2));
continuousTierEllipse.SetValue(Canvas.TopProperty, (yPos - continuousTierEllipse.Height / 2));
AnnoList[closestIndex].Label = (normalized).ToString();

for (int i = closestIndexOld; i < closestIndex; i++)
Expand Down Expand Up @@ -508,7 +529,8 @@ public void InitContinousValues(double sr)
continuousTierEllipse.Fill = Brushes.WhiteSmoke;
continuousTierEllipse.Stroke = Brushes.Black;
continuousTierEllipse.Visibility = Visibility.Hidden;
continuousTierEllipse.SetValue(Canvas.LeftProperty, 0.0);
continuousTierEllipse.SetValue(Canvas.LeftProperty, continuousTierEllipse.Width / 2);
continuousTierEllipse.SetValue(Canvas.TopProperty, this.ActualHeight/2 - continuousTierEllipse.Height / 2);
this.Children.Add(continuousTierEllipse);

TimeRangeChanged(MainHandler.Time);
Expand Down
4 changes: 3 additions & 1 deletion Controls/MainControl.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -386,7 +386,9 @@
Grid.Column="1"
Orientation="Horizontal"
HorizontalAlignment="Right">
<CheckBox x:Name="annoContinuousModeCheckBox" Style="{DynamicResource OrangeSwitchStyle}"
<Label Name="annoContinuousModeDeactiveMouseLabel" Visibility="Hidden">Deactive Mouse</Label>
<CheckBox Name="annoContinuousModeDeactiveMouse" Visibility="Hidden"></CheckBox>
<CheckBox x:Name="annoContinuousModeCheckBox" Style="{DynamicResource OrangeSwitchStyle}"
ToolTip="Continuous Annotation Mode. Shortcut: M"
Visibility="Hidden"/>
<Separator Width="20" Visibility="Hidden"></Separator>
Expand Down
5 changes: 4 additions & 1 deletion Controls/MainHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ namespace ssi
{
public partial class MainHandler
{
public static string BuildVersion = "0.9.9.9.0";
public static string BuildVersion = "0.9.9.9.1";

private static Timeline timeline = null;

Expand Down Expand Up @@ -133,6 +133,8 @@ public MainHandler(MainControl view)
control.annoTierControl.MouseRightButtonUp += annoTierControl_MouseRightButtonUp;
control.annoContinuousModeCheckBox.Checked += annoContinuousMode_Changed;
control.annoContinuousModeCheckBox.Unchecked += annoContinuousMode_Changed;
control.annoContinuousModeDeactiveMouse.Checked += annoContinuousModeDeactiveMouse_Checked;
control.annoContinuousModeDeactiveMouse.Unchecked += annoContinuousModeDeactiveMouse_Unchecked;

// Geometric

Expand Down Expand Up @@ -432,6 +434,7 @@ private void showSettings(bool connectDatabase = false)
Properties.Settings.Default.DefaultMinSegmentSize = double.Parse(s.SegmentMinDur());
Properties.Settings.Default.DefaultDiscreteSampleRate = double.Parse(s.SampleRate());
Properties.Settings.Default.CheckUpdateOnStart = s.CheckforUpdatesonStartup();
Properties.Settings.Default.ContinuousHotkeysNumber = int.Parse(s.ContinuousHotkeyLevels());
Properties.Settings.Default.DatabaseAskBeforeOverwrite = s.DBAskforOverwrite();
Properties.Settings.Default.Save();

Expand Down
28 changes: 28 additions & 0 deletions Controls/MainHandlerKey.cs
Original file line number Diff line number Diff line change
Expand Up @@ -425,18 +425,46 @@ public void OnKeyDown(object sender, KeyEventArgs e)
{
AnnoTierStatic.Selected.ContinuousAnnoMode(true);
control.annoContinuousModeCheckBox.IsChecked = false;


}

else
{
control.annoContinuousModeCheckBox.IsChecked = true;
AnnoTierStatic.Selected.ContinuousAnnoMode(false);

}
}
isKeyDown = true;
// e.Handled = true;
}


if (e.KeyboardDevice.IsKeyDown(Key.N))
{
if (AnnoTierStatic.Selected != null && AnnoTierStatic.Selected.IsContinuous)
{

if (control.annoContinuousModeDeactiveMouse.IsChecked == true)
{

control.annoContinuousModeDeactiveMouse.IsChecked = false;


}

else
{
control.annoContinuousModeDeactiveMouse.IsChecked = true;

}
}
isKeyDown = true;
// e.Handled = true;
}


if (e.KeyboardDevice.IsKeyDown(Key.Q) && !isKeyDown)
{
if (AnnoTierStatic.Label != null && AnnoTierStatic.Selected.IsDiscreteOrFree && isKeyDown == false)
Expand Down
23 changes: 23 additions & 0 deletions Controls/MainHandlerNavigation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -50,18 +50,41 @@ private void navigatorCorrectionMode_Click(object sender, RoutedEventArgs e)

private void annoContinuousMode_Changed(object sender, RoutedEventArgs e)
{
control.annoContinuousModeDeactiveMouse.IsChecked = Properties.Settings.Default.ContinuousDeactiveMouse;

if (AnnoTier.Selected != null && AnnoTier.Selected.AnnoList.Scheme.Type == AnnoScheme.TYPE.CONTINUOUS)
if (control.annoContinuousModeCheckBox.IsChecked == true)
{
AnnoTierStatic.Selected.ContinuousAnnoMode(false);
control.annoContinuousModeDeactiveMouse.Visibility = Visibility.Visible;
control.annoContinuousModeDeactiveMouseLabel.Visibility = Visibility.Visible;

}
else
{
AnnoTierStatic.Selected.ContinuousAnnoMode(true);
control.annoContinuousModeDeactiveMouse.Visibility = Visibility.Collapsed;
control.annoContinuousModeDeactiveMouseLabel.Visibility = Visibility.Collapsed;
}
}



private void annoContinuousModeDeactiveMouse_Checked(object sender, RoutedEventArgs e)
{
AnnoTier.MouseActive = false;
Properties.Settings.Default.ContinuousDeactiveMouse = true;
Properties.Settings.Default.Save();
}

private void annoContinuousModeDeactiveMouse_Unchecked(object sender, RoutedEventArgs e)
{
AnnoTier.MouseActive = true;
Properties.Settings.Default.ContinuousDeactiveMouse = false;
Properties.Settings.Default.Save();
}


private void navigatorNewAnnoFromDatabase_Click(object sender, RoutedEventArgs e)
{
addNewAnnotationDatabase();
Expand Down
8 changes: 6 additions & 2 deletions Controls/Other/Settings.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>

<Grid.ColumnDefinitions>
Expand All @@ -48,8 +50,10 @@
<TextBox Grid.Row="7" Name="Segmentmindur" Margin="5,0,5,5" PreviewTextInput="NumberValidationTextBox" />
<Label Grid.Row="8" Content="Discrete sample rate in Hz (0 for none):" />
<TextBox Grid.Row="9" Name="Samplerate" Margin="5,0,5,5" PreviewTextInput="IntNumberValidationTextBox" />
<Label Grid.Row="10" Content="Check for updates on startup:" />
<CheckBox Grid.Row="11" Name="UpdatesCheckbox" Margin="5,0,5,5" />
<Label Grid.Row="10" Content="Number of Levels for Continuous Annos:" />
<TextBox Grid.Row="11" Name="ContinuousHotkeysnum" Margin="5,0,5,5" PreviewTextInput="IntNumberValidationTextBoxContinuous"/>
<Label Grid.Row="12" Content="Check for updates on startup:" />
<CheckBox Grid.Row="13" Name="UpdatesCheckbox" Margin="5,0,5,5" />

</Grid>
</TabItem>
Expand Down
12 changes: 12 additions & 0 deletions Controls/Other/Settings.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ public Settings()
DefaultZoom.Text = Properties.Settings.Default.DefaultZoomInSeconds.ToString();
Segmentmindur.Text = Properties.Settings.Default.DefaultMinSegmentSize.ToString();
Samplerate.Text = Properties.Settings.Default.DefaultDiscreteSampleRate.ToString();
ContinuousHotkeysnum.Text = Properties.Settings.Default.ContinuousHotkeysNumber.ToString();
string[] tokens = Properties.Settings.Default.DatabaseAddress.Split(':');
if (tokens.Length == 2)
{
Expand Down Expand Up @@ -74,6 +75,11 @@ public string SampleRate()
return Samplerate.Text;
}

public string ContinuousHotkeyLevels()
{
return ContinuousHotkeysnum.Text;
}

public bool CheckforUpdatesonStartup()
{
return (UpdatesCheckbox.IsChecked == true);
Expand Down Expand Up @@ -101,6 +107,12 @@ private void IntNumberValidationTextBox(object sender, TextCompositionEventArgs
e.Handled = !regex.IsMatch((sender as TextBox).Text.Insert((sender as TextBox).SelectionStart, e.Text));
}

private void IntNumberValidationTextBoxContinuous(object sender, TextCompositionEventArgs e)
{
Regex regex = new Regex("^[2-9]$");
e.Handled = !regex.IsMatch((sender as TextBox).Text.Insert((sender as TextBox).SelectionStart, e.Text));
}

private void ApplyButton_Click(object sender, RoutedEventArgs e)
{
if (Properties.Settings.Default.DatabaseDirectory != DownloadDirectory.Text)
Expand Down
24 changes: 24 additions & 0 deletions Properties/Settings.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions Properties/Settings.settings
Original file line number Diff line number Diff line change
Expand Up @@ -104,5 +104,11 @@
<Setting Name="LastUpdateCheckDate" Type="System.DateTime" Scope="User">
<Value Profile="(Default)">1979-01-01</Value>
</Setting>
<Setting Name="ContinuousHotkeysNumber" Type="System.Int32" Scope="User">
<Value Profile="(Default)">5</Value>
</Setting>
<Setting Name="ContinuousDeactiveMouse" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
</Settings>
</SettingsFile>
4 changes: 2 additions & 2 deletions Tools/PluginCaller.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public PluginCaller(string dllPath, string typeName)
isLoaded = true;

dllName = Path.GetFileNameWithoutExtension(dllPath);
directory = Environment.CurrentDirectory + "\\" + PLUGIN_FOLDER + "\\" + dllName + "\\";
directory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\" + PLUGIN_FOLDER + "\\" + dllName + "\\";

Directory.CreateDirectory(directory);
if (!downloadDll(dllName, false))
Expand Down Expand Up @@ -81,7 +81,7 @@ public bool downloadDll(string name, bool isDependency)

if(isDependency)
{
Client.DownloadFile(url, Environment.CurrentDirectory + "//" + name + ".dll");
Client.DownloadFile(url, Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "//" + name + ".dll");
}

else Client.DownloadFile(url, directory + "//" + name + ".dll"); ;
Expand Down
Binary file added bin/MathNet.Numerics.dll
Binary file not shown.
Binary file modified bin/nova.exe
Binary file not shown.
Binary file modified bin/plugins/ActiveMQSender/ActiveMQSender.dll
Binary file not shown.
Binary file modified bin/plugins/UdpSender/UdpSender.dll
Binary file not shown.

0 comments on commit 3fdfe25

Please sign in to comment.