[chronojump] spinbutton curves limited to curves num



commit 1a36eec8c2749fb3c981fb5d54834e7716a7fa56
Author: Xavier de Blas <xaviblas gmail com>
Date:   Sun Apr 1 19:08:01 2012 +0800

    spinbutton curves limited to curves num

 encoder/pyserial_pyper.py |    2 +-
 glade/chronojump.glade    |    1 +
 src/gui/encoder.cs        |   68 +++++++++++++++++++++++++-------------------
 3 files changed, 41 insertions(+), 30 deletions(-)
---
diff --git a/encoder/pyserial_pyper.py b/encoder/pyserial_pyper.py
index 2a60539..069837e 100644
--- a/encoder/pyserial_pyper.py
+++ b/encoder/pyserial_pyper.py
@@ -160,7 +160,7 @@ def calculate_all_in_r(temp, top_values, bottom_values, direction_now, smoothing
 		if(meanPower > 3500): colPower = REDINV
 		else: colPower = RED
 
-		phasRange = phaseRange / 10 #from cm to mm
+		phaseRange = phaseRange / 10 #from cm to mm
 		
 		if eccon == "ec" or direction_now == -1:
 			if phaseRange >= minHeight:
diff --git a/glade/chronojump.glade b/glade/chronojump.glade
index 046398f..fbdd074 100644
--- a/glade/chronojump.glade
+++ b/glade/chronojump.glade
@@ -23525,6 +23525,7 @@ on current Chronojump version.</property>
                                                             <widget class="GtkButton" id="button_encoder_analyze">
                                                             <property name="label" translatable="yes">Analyze</property>
                                                             <property name="visible">True</property>
+                                                            <property name="sensitive">False</property>
                                                             <property name="can_focus">True</property>
                                                             <property name="can_default">True</property>
                                                             <property name="receives_default">True</property>
diff --git a/src/gui/encoder.cs b/src/gui/encoder.cs
index d52a238..22985e9 100644
--- a/src/gui/encoder.cs
+++ b/src/gui/encoder.cs
@@ -43,6 +43,7 @@ public partial class ChronoJumpWindow
 	[Widget] Gtk.Image image_encoder_capture;
 	[Widget] Gtk.TreeView treeview_encoder_curves;
 	
+	[Widget] Gtk.Button button_encoder_analyze;
 	[Widget] Gtk.RadioButton radiobutton_encoder_analyze_powerbars;
 	[Widget] Gtk.RadioButton radiobutton_encoder_analyze_single;
 	[Widget] Gtk.RadioButton radiobutton_encoder_analyze_side;
@@ -60,10 +61,7 @@ public partial class ChronoJumpWindow
 
 	private string encoderAnalysis="powerBars";
 
-//TODO: on capture only show ups if concentric
-
-	//TODO: que el curve no pugui ser mes alt de actual numero de curves, per tant s'ha de retornar algun valor. ha de canviar cada cop que hi ha un capture o recalculate
-
+	//TODO: improve formatting of data.ataany column show same number of digits at left of dec point
 	//TODO: campanes a l'encoder pq mostri colors i sons en funcio del que passa
 	//TODO: in ec, curves and powerBars have to be different on ec than on c
 	//
@@ -101,21 +99,42 @@ public partial class ChronoJumpWindow
 
 		Util.RunPythonEncoder(Constants.EncoderScriptCapture, es, true);
 
-		makeCurvesGraph();
-		updateTreeView();
+		updateThings();
 	}
-	
+		
 	void on_button_encoder_recalculate_clicked (object o, EventArgs args) 
 	{
+		updateThings();
+	}
+	
+	private void updateThings() 
+	{
 		makeCurvesGraph();
-		updateTreeView();
+		
+		string contents = Util.ReadFile(Util.GetEncoderCurvesTempFileName());
+		if (contents == null) {
+			//TODO: no data: make some of the gui unsensitive ??
+			button_encoder_analyze.Sensitive = false;
+		} else {
+			removeColumns();
+			int curvesNum = createTreeViewEncoder(contents);
+			spin_encoder_analyze_curve_num.SetRange(1,curvesNum);
+			button_encoder_analyze.Sensitive = true;
+		}
+	}
+	
+	private void removeColumns() {
+		Gtk.TreeViewColumn [] myColumns = treeview_encoder_curves.Columns;
+		foreach (Gtk.TreeViewColumn column in myColumns) 
+			treeview_encoder_curves.RemoveColumn (column);
 	}
 
+
 	private void makeCurvesGraph() 
 	{
 	      	//show curves graph
-		int w = UtilGtk.WidgetWidth(viewport_image_encoder_capture)-2; //image is inside (is smaller than) viewport
-		int h = UtilGtk.WidgetHeight(viewport_image_encoder_capture)-2;
+		int w = UtilGtk.WidgetWidth(viewport_image_encoder_capture)-3; //image is inside (is smaller than) viewport
+		int h = UtilGtk.WidgetHeight(viewport_image_encoder_capture)-3;
 
 		EncoderParams ep = new EncoderParams(
 				(int) spin_encoder_capture_min_height.Value, 
@@ -142,8 +161,8 @@ public partial class ChronoJumpWindow
 	//TODO: garantir path windows	
 	private void on_button_encoder_analyze_clicked (object o, EventArgs args) 
 	{
-		int w = UtilGtk.WidgetWidth(viewport_image_encoder_analyze)-2; //image is inside (is smaller than) viewport
-		int h = UtilGtk.WidgetHeight(viewport_image_encoder_analyze)-2;
+		int w = UtilGtk.WidgetWidth(viewport_image_encoder_analyze)-3; //image is inside (is smaller than) viewport
+		int h = UtilGtk.WidgetHeight(viewport_image_encoder_analyze)-3;
 
 		EncoderParams ep = new EncoderParams(
 				(int) spin_encoder_capture_min_height.Value, 
@@ -210,17 +229,16 @@ public partial class ChronoJumpWindow
 
 	/* TreeView stuff */	
 
-	public void CreateTreeViewEncoder() {
-		string [] columnsString = {"n","Width","Height","MeanSpeed","MaxSpeed",
-			"MeanPower","PeakPower","PeakPowerT"};
+	//returns curves num
+	private int createTreeViewEncoder(string contents) {
+		string [] columnsString = {"n","Duration (s)","Height (cm)","MeanSpeed (m/s)","MaxSpeed (m/s)", //duration (s): width
+			"MeanPower (W)","PeakPower (W)","PeakPowerT (s)"};
 
-		string contents = Util.ReadFile(Util.GetEncoderCurvesTempFileName());
-		if (contents == null) 
-			return;
 
 		encoderCurves = new ArrayList ();
 
 		string line;
+		int curvesCount = 0;
 		using (StringReader reader = new StringReader (contents)) {
 			line = reader.ReadLine ();	//headers
 			Log.WriteLine(line);
@@ -230,6 +248,8 @@ public partial class ChronoJumpWindow
 				if (line == null)
 					break;
 
+				curvesCount ++;
+
 				string [] cells = line.Split(new char[] {','});
 				cells = fixDecimals(cells);
 				//iter = encoderStore.AppendValues(cells);
@@ -290,6 +310,7 @@ public partial class ChronoJumpWindow
 			treeview_encoder_curves.AppendColumn (aColumn);
 			i++;
 		}
+		return curvesCount;
 	}
 
 
@@ -372,17 +393,6 @@ public partial class ChronoJumpWindow
 
 
 	
-	private void removeColumns() {
-		Gtk.TreeViewColumn [] myColumns = treeview_encoder_curves.Columns;
-		foreach (Gtk.TreeViewColumn column in myColumns) 
-			treeview_encoder_curves.RemoveColumn (column);
-	}
-
-	private void updateTreeView() {
-		removeColumns();
-		CreateTreeViewEncoder();
-	}
-
 	
 	private string [] fixDecimals(string [] cells) {
 		for(int i=1; i <= 2; i++)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]