16 */ |
16 */ |
17 |
17 |
18 |
18 |
19 package com.nokia.s60tools.imaker.internal.providers; |
19 package com.nokia.s60tools.imaker.internal.providers; |
20 |
20 |
21 import java.util.regex.Matcher; |
|
22 import java.util.regex.Pattern; |
|
23 |
|
24 import org.eclipse.jface.viewers.CellEditor; |
21 import org.eclipse.jface.viewers.CellEditor; |
25 import org.eclipse.jface.viewers.CheckboxCellEditor; |
22 import org.eclipse.jface.viewers.CheckboxCellEditor; |
26 import org.eclipse.jface.viewers.ColumnViewer; |
23 import org.eclipse.jface.viewers.ColumnViewer; |
27 import org.eclipse.jface.viewers.TableViewer; |
24 import org.eclipse.jface.viewers.TableViewer; |
28 |
25 |
29 import com.nokia.s60tools.imaker.internal.model.iContent.IbyEntry; |
26 import com.nokia.s60tools.imaker.internal.model.iContent.IbyEntry; |
30 import com.nokia.s60tools.imaker.internal.viewers.DebugTab; |
|
31 |
27 |
32 public class CheckBoxEditingSupport extends IbyEntryEditingSupport { |
28 public class CheckBoxEditingSupport extends IbyEntryEditingSupport { |
33 private final static int ENABLE_COLUMN_ID = 1; |
29 private final static int ENABLE_COLUMN_ID = 1; |
34 public CheckBoxEditingSupport(ColumnViewer viewer, int column) { |
30 public CheckBoxEditingSupport(ColumnViewer viewer, int column) { |
35 super(viewer, column); |
31 super(viewer, column); |
47 return cellEditor; |
43 return cellEditor; |
48 } |
44 } |
49 |
45 |
50 @Override |
46 @Override |
51 protected Object getValue(Object element) { |
47 protected Object getValue(Object element) { |
52 Boolean ret = (column==ENABLE_COLUMN_ID)?new Boolean(getEntry(element).isEnabled()):new Boolean(getEntry(element).isDebug()); |
48 return new Boolean(getEntry(element).isEnabled()); |
53 return ret; |
|
54 } |
49 } |
55 |
50 |
56 @Override |
51 @Override |
57 protected void setValue(Object element, Object value) { |
52 protected void setValue(Object element, Object value) { |
58 Boolean newValue = (Boolean)value; |
53 Boolean newValue = (Boolean)value; |
59 IbyEntry entry = getEntry(element); |
54 IbyEntry entry = getEntry(element); |
60 if(column==ENABLE_COLUMN_ID) { |
55 entry.setEnabled(newValue); |
61 entry.setEnabled(newValue); |
|
62 } else { |
|
63 String dPath = getDebugVersion(entry.getFile(),newValue); |
|
64 if(!dPath.equals(entry.getFile())) { |
|
65 entry.setFile(dPath); |
|
66 entry.setDebug(newValue); |
|
67 } else { |
|
68 return; |
|
69 } |
|
70 } |
|
71 updateWarning(element); |
|
72 getViewer().update(element, null); |
56 getViewer().update(element, null); |
73 } |
57 } |
74 |
|
75 private String getDebugVersion(String path, Boolean value) { |
|
76 String pattern; |
|
77 if(value) { |
|
78 pattern = DebugTab.REL_PATTERN; |
|
79 } else { |
|
80 pattern = DebugTab.DEBUG_PATTERN; |
|
81 } |
|
82 Pattern p = Pattern.compile(pattern); |
|
83 Matcher matcher = p.matcher(path); |
|
84 if (matcher.find()) { |
|
85 int start = matcher.start(1); |
|
86 int end = matcher.end(1); |
|
87 String newPath; |
|
88 if(value) { |
|
89 newPath = path.substring(0, start) + "udeb" + path.substring(end); |
|
90 } else { |
|
91 newPath = path.substring(0, start) + "urel" + path.substring(end); |
|
92 } |
|
93 return newPath; |
|
94 } else { |
|
95 return path; |
|
96 } |
|
97 } |
|
98 } |
58 } |