1 package jp.sourceforge.gokigen.memoma;
3 import android.app.Activity;
4 import android.content.SharedPreferences;
5 import android.preference.PreferenceManager;
13 public class LineStyleHolder
15 private Activity activity = null;
17 public static final int LINESTYLE_STRAIGHT_NO_ARROW = 0;
18 public static final int LINESTYLE_TREESTYLE_NO_ARROW = 1;
19 public static final int LINESTYLE_CURVESTYLE_NO_ARROW = 2;
20 public static final int LINESTYLE_STRAIGHT_R_ARROW = 3;
21 public static final int LINESTYLE_STRAIGHT_L_ARROW = 4;
22 public static final int LINESTYLE_TREESTYLE_R_ARROW = 5;
23 public static final int LINESTYLE_TREESTYLE_L_ARROW = 6;
24 public static final int LINESTYLE_CURVESTYLE_R_ARROW = 7;
25 public static final int LINESTYLE_CURVESTYLE_L_ARROW = 8;
27 public static final int LINESHAPE_NORMAL = 1000; // 普通の直線
28 public static final int LINESHAPE_DASH = 1001; // 点線(破線)
30 public static final int LINETHICKNESS_THIN = 0; // 細い線
31 public static final int LINETHICKNESS_MIDDLE = 3; // 中太線
32 public static final int LINETHICKNESS_HEAVY = 6; // 太線
34 private int currentLineThickness = LINETHICKNESS_THIN;
35 private int currentLineShape = LINESHAPE_NORMAL;
36 private int currentLineStyle = LINESTYLE_STRAIGHT_NO_ARROW;
43 public LineStyleHolder(Activity arg)
54 SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(activity);
55 currentLineStyle = Integer.parseInt(preferences.getString("lineStyle", "0"));
56 currentLineShape = Integer.parseInt(preferences.getString("lineShape", "1000"));
57 currentLineThickness = Integer.parseInt(preferences.getString("lineThickness", "1"));
61 public int changeLineStyle()
63 SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(activity);
64 int value = Integer.parseInt(preferences.getString("lineStyle", "0"));
67 case LINESTYLE_STRAIGHT_NO_ARROW:
68 value = LINESTYLE_STRAIGHT_R_ARROW;
70 case LINESTYLE_STRAIGHT_R_ARROW:
71 value = LINESTYLE_TREESTYLE_NO_ARROW;
73 case LINESTYLE_TREESTYLE_NO_ARROW:
74 value = LINESTYLE_TREESTYLE_R_ARROW;
76 case LINESTYLE_TREESTYLE_R_ARROW:
77 value = LINESTYLE_CURVESTYLE_NO_ARROW;
79 case LINESTYLE_CURVESTYLE_NO_ARROW:
80 value = LINESTYLE_CURVESTYLE_R_ARROW;
82 case LINESTYLE_CURVESTYLE_R_ARROW:
83 // value = LINESTYLE_STRAIGHT_L_ARROW; // 左側矢印を作成する場合
84 value = LINESTYLE_STRAIGHT_NO_ARROW; // 左側矢印を作成しない場合
86 case LINESTYLE_STRAIGHT_L_ARROW:
87 value = LINESTYLE_TREESTYLE_L_ARROW;
89 case LINESTYLE_TREESTYLE_L_ARROW:
90 value = LINESTYLE_CURVESTYLE_L_ARROW;
92 case LINESTYLE_CURVESTYLE_L_ARROW:
94 value = LINESTYLE_STRAIGHT_NO_ARROW;
99 SharedPreferences.Editor editor = preferences.edit();
100 editor.putString("lineStyle", "" + value);
111 public void setLineStyle(int style)
113 currentLineStyle = LineStyleHolder.LINESTYLE_STRAIGHT_NO_ARROW;
116 case LineStyleHolder.LINESTYLE_STRAIGHT_NO_ARROW:
117 case LineStyleHolder.LINESTYLE_TREESTYLE_NO_ARROW:
118 case LineStyleHolder.LINESTYLE_CURVESTYLE_NO_ARROW:
119 case LineStyleHolder.LINESTYLE_STRAIGHT_R_ARROW:
120 case LineStyleHolder.LINESTYLE_TREESTYLE_R_ARROW:
121 case LineStyleHolder.LINESTYLE_CURVESTYLE_R_ARROW:
122 case LineStyleHolder.LINESTYLE_STRAIGHT_L_ARROW:
123 case LineStyleHolder.LINESTYLE_TREESTYLE_L_ARROW:
124 case LineStyleHolder.LINESTYLE_CURVESTYLE_L_ARROW:
125 currentLineStyle = style;
129 currentLineStyle = LineStyleHolder.LINESTYLE_STRAIGHT_NO_ARROW;
134 SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(activity);
135 SharedPreferences.Editor editor = preferences.edit();
136 editor.putString("lineStyle", "" + currentLineStyle);
140 * 接続する線の種類(点線 or 実線) を設定する
144 public void setLineShape(int shape)
146 currentLineShape = LineStyleHolder.LINESHAPE_NORMAL;
149 case LineStyleHolder.LINESHAPE_DASH:
150 case LineStyleHolder.LINESHAPE_NORMAL:
151 currentLineShape = shape;
155 currentLineShape = LineStyleHolder.LINESHAPE_NORMAL;
160 SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(activity);
161 SharedPreferences.Editor editor = preferences.edit();
162 editor.putString("lineShape", "" + currentLineShape);
171 public void setLineThickness(int thickness)
173 currentLineThickness = LineStyleHolder.LINETHICKNESS_THIN;
176 case LineStyleHolder.LINETHICKNESS_HEAVY:
177 case LineStyleHolder.LINETHICKNESS_MIDDLE:
178 case LineStyleHolder.LINETHICKNESS_THIN:
179 currentLineThickness = thickness;
183 currentLineThickness = LineStyleHolder.LINETHICKNESS_THIN;
188 SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(activity);
189 SharedPreferences.Editor editor = preferences.edit();
190 editor.putString("lineThickness", "" + currentLineThickness);
199 public int getLineStyle()
201 return (currentLineStyle);
205 * 接続する線の種類(点線 or 実線) を応答する
209 public int getLineShape()
211 return (currentLineShape);
219 public int getLineThickness()
221 return (currentLineThickness);
230 public static int getLineThicknessImageId(int thickness)
232 int buttonId = R.drawable.btn_line_thin;
235 case LineStyleHolder.LINETHICKNESS_HEAVY:
236 buttonId = R.drawable.btn_line_heavy;
239 case LineStyleHolder.LINETHICKNESS_MIDDLE:
240 buttonId = R.drawable.btn_line_middle;
243 case LineStyleHolder.LINETHICKNESS_THIN:
245 buttonId = R.drawable.btn_line_thin;
254 * @param currentLineStyle
255 * @param currentLineShape
258 public static int getLineShapeImageId(int currentLineStyle, int currentLineShape)
260 int buttonId = R.drawable.btn_straight;
262 if ((currentLineStyle == LineStyleHolder.LINESTYLE_TREESTYLE_NO_ARROW)&&
263 (currentLineShape == LineStyleHolder.LINESHAPE_NORMAL))
265 buttonId = R.drawable.btn_tree;
267 else if ((currentLineStyle == LineStyleHolder.LINESTYLE_CURVESTYLE_NO_ARROW)&&
268 (currentLineShape == LineStyleHolder.LINESHAPE_NORMAL))
270 buttonId = R.drawable.btn_curve;
272 else if ((currentLineStyle == LineStyleHolder.LINESTYLE_STRAIGHT_NO_ARROW)&&
273 (currentLineShape == LineStyleHolder.LINESHAPE_DASH))
275 buttonId = R.drawable.btn_straight_dash;
277 else if ((currentLineStyle == LineStyleHolder.LINESTYLE_TREESTYLE_NO_ARROW)&&
278 (currentLineShape == LineStyleHolder.LINESHAPE_DASH))
280 buttonId = R.drawable.btn_tree_dash;
282 else if ((currentLineStyle == LineStyleHolder.LINESTYLE_CURVESTYLE_NO_ARROW)&&
283 (currentLineShape == LineStyleHolder.LINESHAPE_DASH))
285 buttonId = R.drawable.btn_curve_dash;
287 else if ((currentLineStyle == LineStyleHolder.LINESTYLE_STRAIGHT_R_ARROW)&&
288 (currentLineShape == LineStyleHolder.LINESHAPE_NORMAL))
290 buttonId = R.drawable.btn_straight_rarrow;
292 else if ((currentLineStyle == LineStyleHolder.LINESTYLE_TREESTYLE_R_ARROW)&&
293 (currentLineShape == LineStyleHolder.LINESHAPE_NORMAL))
295 buttonId = R.drawable.btn_tree_rarrow;
297 else if ((currentLineStyle == LineStyleHolder.LINESTYLE_CURVESTYLE_R_ARROW)&&
298 (currentLineShape == LineStyleHolder.LINESHAPE_NORMAL))
300 buttonId = R.drawable.btn_curve_rarrow;
302 else if ((currentLineStyle == LineStyleHolder.LINESTYLE_STRAIGHT_R_ARROW)&&
303 (currentLineShape == LineStyleHolder.LINESHAPE_DASH))
305 buttonId = R.drawable.btn_straight_rarrow_dash;
307 else if ((currentLineStyle == LineStyleHolder.LINESTYLE_TREESTYLE_R_ARROW)&&
308 (currentLineShape == LineStyleHolder.LINESHAPE_DASH))
310 buttonId = R.drawable.btn_tree_rarrow_dash;
312 else if ((currentLineStyle == LineStyleHolder.LINESTYLE_CURVESTYLE_R_ARROW)&&
313 (currentLineShape == LineStyleHolder.LINESHAPE_DASH))
315 buttonId = R.drawable.btn_curve_rarrow_dash;
318 else if ((currentLineStyle == LineStyleHolder.LINESTYLE_STRAIGHT_NO_ARROW)&&
319 (currentLineShape == LineStyleHolder.LINESHAPE_NORMAL))
321 buttonId = R.drawable.btn_straight;