1 package jp.sourceforge.gokigen.memoma.holders;
3 import android.app.Activity;
4 import android.content.SharedPreferences;
5 import android.preference.PreferenceManager;
7 import jp.sourceforge.gokigen.memoma.R;
15 public class LineStyleHolder
17 private Activity activity = null;
19 public static final int LINESTYLE_STRAIGHT_NO_ARROW = 0;
20 public static final int LINESTYLE_TREESTYLE_NO_ARROW = 1;
21 public static final int LINESTYLE_CURVESTYLE_NO_ARROW = 2;
22 public static final int LINESTYLE_STRAIGHT_R_ARROW = 3;
23 public static final int LINESTYLE_STRAIGHT_L_ARROW = 4;
24 public static final int LINESTYLE_TREESTYLE_R_ARROW = 5;
25 public static final int LINESTYLE_TREESTYLE_L_ARROW = 6;
26 public static final int LINESTYLE_CURVESTYLE_R_ARROW = 7;
27 public static final int LINESTYLE_CURVESTYLE_L_ARROW = 8;
29 public static final int LINESHAPE_NORMAL = 1000; // 普通の直線
30 public static final int LINESHAPE_DASH = 1001; // 点線(破線)
32 public static final int LINETHICKNESS_THIN = 0; // 細い線
33 public static final int LINETHICKNESS_MIDDLE = 3; // 中太線
34 public static final int LINETHICKNESS_HEAVY = 6; // 太線
36 private int currentLineThickness = LINETHICKNESS_THIN;
37 private int currentLineShape = LINESHAPE_NORMAL;
38 private int currentLineStyle = LINESTYLE_STRAIGHT_NO_ARROW;
45 public LineStyleHolder(Activity arg)
56 SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(activity);
57 currentLineStyle = Integer.parseInt(preferences.getString("lineStyle", "0"));
58 currentLineShape = Integer.parseInt(preferences.getString("lineShape", "1000"));
59 currentLineThickness = Integer.parseInt(preferences.getString("lineThickness", "1"));
63 public int changeLineStyle()
65 SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(activity);
66 int value = Integer.parseInt(preferences.getString("lineStyle", "0"));
69 case LINESTYLE_STRAIGHT_NO_ARROW:
70 value = LINESTYLE_STRAIGHT_R_ARROW;
72 case LINESTYLE_STRAIGHT_R_ARROW:
73 value = LINESTYLE_TREESTYLE_NO_ARROW;
75 case LINESTYLE_TREESTYLE_NO_ARROW:
76 value = LINESTYLE_TREESTYLE_R_ARROW;
78 case LINESTYLE_TREESTYLE_R_ARROW:
79 value = LINESTYLE_CURVESTYLE_NO_ARROW;
81 case LINESTYLE_CURVESTYLE_NO_ARROW:
82 value = LINESTYLE_CURVESTYLE_R_ARROW;
84 case LINESTYLE_CURVESTYLE_R_ARROW:
85 // value = LINESTYLE_STRAIGHT_L_ARROW; // 左側矢印を作成する場合
86 value = LINESTYLE_STRAIGHT_NO_ARROW; // 左側矢印を作成しない場合
88 case LINESTYLE_STRAIGHT_L_ARROW:
89 value = LINESTYLE_TREESTYLE_L_ARROW;
91 case LINESTYLE_TREESTYLE_L_ARROW:
92 value = LINESTYLE_CURVESTYLE_L_ARROW;
94 case LINESTYLE_CURVESTYLE_L_ARROW:
96 value = LINESTYLE_STRAIGHT_NO_ARROW;
101 SharedPreferences.Editor editor = preferences.edit();
102 editor.putString("lineStyle", "" + value);
113 public void setLineStyle(int style)
115 currentLineStyle = LineStyleHolder.LINESTYLE_STRAIGHT_NO_ARROW;
118 case LineStyleHolder.LINESTYLE_STRAIGHT_NO_ARROW:
119 case LineStyleHolder.LINESTYLE_TREESTYLE_NO_ARROW:
120 case LineStyleHolder.LINESTYLE_CURVESTYLE_NO_ARROW:
121 case LineStyleHolder.LINESTYLE_STRAIGHT_R_ARROW:
122 case LineStyleHolder.LINESTYLE_TREESTYLE_R_ARROW:
123 case LineStyleHolder.LINESTYLE_CURVESTYLE_R_ARROW:
124 case LineStyleHolder.LINESTYLE_STRAIGHT_L_ARROW:
125 case LineStyleHolder.LINESTYLE_TREESTYLE_L_ARROW:
126 case LineStyleHolder.LINESTYLE_CURVESTYLE_L_ARROW:
127 currentLineStyle = style;
131 currentLineStyle = LineStyleHolder.LINESTYLE_STRAIGHT_NO_ARROW;
136 SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(activity);
137 SharedPreferences.Editor editor = preferences.edit();
138 editor.putString("lineStyle", "" + currentLineStyle);
142 * 接続する線の種類(点線 or 実線) を設定する
146 public void setLineShape(int shape)
148 currentLineShape = LineStyleHolder.LINESHAPE_NORMAL;
151 case LineStyleHolder.LINESHAPE_DASH:
152 case LineStyleHolder.LINESHAPE_NORMAL:
153 currentLineShape = shape;
157 currentLineShape = LineStyleHolder.LINESHAPE_NORMAL;
162 SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(activity);
163 SharedPreferences.Editor editor = preferences.edit();
164 editor.putString("lineShape", "" + currentLineShape);
172 public void setLineThickness(int thickness)
174 currentLineThickness = LineStyleHolder.LINETHICKNESS_THIN;
177 case LineStyleHolder.LINETHICKNESS_HEAVY:
178 case LineStyleHolder.LINETHICKNESS_MIDDLE:
179 case LineStyleHolder.LINETHICKNESS_THIN:
180 currentLineThickness = thickness;
184 currentLineThickness = LineStyleHolder.LINETHICKNESS_THIN;
189 SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(activity);
190 SharedPreferences.Editor editor = preferences.edit();
191 editor.putString("lineThickness", "" + currentLineThickness);
200 public int getLineStyle()
202 return (currentLineStyle);
206 * 接続する線の種類(点線 or 実線) を応答する
210 public int getLineShape()
212 return (currentLineShape);
220 public int getLineThickness()
222 return (currentLineThickness);
231 public static int getLineThicknessImageId(int thickness)
233 int buttonId = R.drawable.btn_line_thin;
236 case LineStyleHolder.LINETHICKNESS_HEAVY:
237 buttonId = R.drawable.btn_line_heavy;
240 case LineStyleHolder.LINETHICKNESS_MIDDLE:
241 buttonId = R.drawable.btn_line_middle;
244 case LineStyleHolder.LINETHICKNESS_THIN:
246 buttonId = R.drawable.btn_line_thin;
255 * @param currentLineStyle
256 * @param currentLineShape
259 public static int getLineShapeImageId(int currentLineStyle, int currentLineShape)
261 int buttonId = R.drawable.btn_straight;
263 if ((currentLineStyle == LineStyleHolder.LINESTYLE_TREESTYLE_NO_ARROW)&&
264 (currentLineShape == LineStyleHolder.LINESHAPE_NORMAL))
266 buttonId = R.drawable.btn_tree;
268 else if ((currentLineStyle == LineStyleHolder.LINESTYLE_CURVESTYLE_NO_ARROW)&&
269 (currentLineShape == LineStyleHolder.LINESHAPE_NORMAL))
271 buttonId = R.drawable.btn_curve;
273 else if ((currentLineStyle == LineStyleHolder.LINESTYLE_STRAIGHT_NO_ARROW)&&
274 (currentLineShape == LineStyleHolder.LINESHAPE_DASH))
276 buttonId = R.drawable.btn_straight_dash;
278 else if ((currentLineStyle == LineStyleHolder.LINESTYLE_TREESTYLE_NO_ARROW)&&
279 (currentLineShape == LineStyleHolder.LINESHAPE_DASH))
281 buttonId = R.drawable.btn_tree_dash;
283 else if ((currentLineStyle == LineStyleHolder.LINESTYLE_CURVESTYLE_NO_ARROW)&&
284 (currentLineShape == LineStyleHolder.LINESHAPE_DASH))
286 buttonId = R.drawable.btn_curve_dash;
288 else if ((currentLineStyle == LineStyleHolder.LINESTYLE_STRAIGHT_R_ARROW)&&
289 (currentLineShape == LineStyleHolder.LINESHAPE_NORMAL))
291 buttonId = R.drawable.btn_straight_rarrow;
293 else if ((currentLineStyle == LineStyleHolder.LINESTYLE_TREESTYLE_R_ARROW)&&
294 (currentLineShape == LineStyleHolder.LINESHAPE_NORMAL))
296 buttonId = R.drawable.btn_tree_rarrow;
298 else if ((currentLineStyle == LineStyleHolder.LINESTYLE_CURVESTYLE_R_ARROW)&&
299 (currentLineShape == LineStyleHolder.LINESHAPE_NORMAL))
301 buttonId = R.drawable.btn_curve_rarrow;
303 else if ((currentLineStyle == LineStyleHolder.LINESTYLE_STRAIGHT_R_ARROW)&&
304 (currentLineShape == LineStyleHolder.LINESHAPE_DASH))
306 buttonId = R.drawable.btn_straight_rarrow_dash;
308 else if ((currentLineStyle == LineStyleHolder.LINESTYLE_TREESTYLE_R_ARROW)&&
309 (currentLineShape == LineStyleHolder.LINESHAPE_DASH))
311 buttonId = R.drawable.btn_tree_rarrow_dash;
313 else if ((currentLineStyle == LineStyleHolder.LINESTYLE_CURVESTYLE_R_ARROW)&&
314 (currentLineShape == LineStyleHolder.LINESHAPE_DASH))
316 buttonId = R.drawable.btn_curve_rarrow_dash;
319 else if ((currentLineStyle == LineStyleHolder.LINESTYLE_STRAIGHT_NO_ARROW)&&
320 (currentLineShape == LineStyleHolder.LINESHAPE_NORMAL))
322 buttonId = R.drawable.btn_straight;