Changeset 11405
- Timestamp:
- 05/11/08 22:25:07 (5 years ago)
- Location:
- lang/java/sabotter/trunk
- Files:
-
- 4 added
- 9 modified
-
.classpath (modified) (1 diff)
-
META-INF/MANIFEST.MF (modified) (1 diff)
-
build.properties (modified) (1 diff)
-
lib/commons-lang-2.4.jar (added)
-
lib/sources/commons-lang-2.4-sources.jar (added)
-
lib/xpp3_min-1.1.4c.jar (added)
-
lib/xstream-1.3.jar (added)
-
src/jp/xet/eclipse/sabotter/action/AddTabAction.java (modified) (7 diffs)
-
src/jp/xet/eclipse/sabotter/preferences/SabotterPreference.java (modified) (2 diffs)
-
src/jp/xet/eclipse/sabotter/preferences/SabotterPreferenceImpl.java (modified) (1 diff)
-
src/jp/xet/eclipse/sabotter/views/ColumnSizeListener.java (modified) (2 diffs)
-
src/jp/xet/eclipse/sabotter/views/SabotterTabModel.java (modified) (3 diffs)
-
src/jp/xet/eclipse/sabotter/views/SabotterView.java (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
lang/java/sabotter/trunk/.classpath
r10237 r11405 14 14 <classpathentry kind="lib" path="lib/commons-httpclient-3.0.1.jar"/> 15 15 <classpathentry kind="lib" path="lib/commons-logging-1.0.3.jar"/> 16 <classpathentry kind="lib" path="lib/xpp3_min-1.1.4c.jar"/> 17 <classpathentry kind="lib" path="lib/xstream-1.3.jar"/> 18 <classpathentry kind="lib" path="lib/commons-lang-2.4.jar" sourcepath="lib/sources/commons-lang-2.4-sources.jar"/> 16 19 <classpathentry kind="output" path="bin"/> 17 20 </classpath> -
lang/java/sabotter/trunk/META-INF/MANIFEST.MF
r10588 r11405 19 19 lib/commons-codec-1.2.jar, 20 20 lib/commons-httpclient-3.0.1.jar, 21 lib/commons-logging-1.0.3.jar 21 lib/commons-logging-1.0.3.jar, 22 lib/xpp3_min-1.1.4c.jar, 23 lib/xstream-1.3.jar, 24 lib/commons-lang-2.4.jar 22 25 Export-Package: jp.xet.eclipse.sabotter, 23 26 jp.xet.eclipse.sabotter.action, -
lang/java/sabotter/trunk/build.properties
r10363 r11405 17 17 LICENSE.txt,\ 18 18 plugin.properties,\ 19 plugin_ja.properties 19 plugin_ja.properties,\ 20 lib/xpp3_min-1.1.4c.jar,\ 21 lib/xstream-1.3.jar,\ 22 lib/commons-lang-2.4.jar 20 23 src.includes = .classpath,\ 21 24 .project,\ -
lang/java/sabotter/trunk/src/jp/xet/eclipse/sabotter/action/AddTabAction.java
r11291 r11405 1 1 package jp.xet.eclipse.sabotter.action; 2 2 3 import jp.xet.eclipse.sabotter.filters.TimeLineFilter; 3 4 import jp.xet.eclipse.sabotter.manager.TableManager; 4 5 import jp.xet.eclipse.sabotter.manager.TwitterManager; … … 9 10 import jp.xet.eclipse.sabotter.views.SabotterTabModel; 10 11 import jp.xet.eclipse.sabotter.views.SabotterView; 12 import jp.xet.eclipse.sabotter.views.TimeLineSorter; 13 11 14 import org.eclipse.jface.action.Action; 12 15 import org.eclipse.jface.dialogs.IInputValidator; … … 25 28 import org.eclipse.swt.events.DisposeEvent; 26 29 import org.eclipse.swt.events.DisposeListener; 27 import org.eclipse.swt.events.TraverseEvent;28 import org.eclipse.swt.events.TraverseListener;29 30 import org.eclipse.swt.layout.GridData; 30 31 import org.eclipse.swt.widgets.Table; … … 136 137 viewer.getTable().addKeyListener( 137 138 new SabotterKeyListener(new TableManager(viewer))); 138 viewer.getTable().addTraverseListener(new TraverseListener() {139 140 public void keyTraversed(TraverseEvent e) {141 // TODO Auto-generated method stub142 System.out.println("TraverseEvent: " + e);143 144 }145 146 } );139 140 TimeLineFilter[] filters = tab.getFilters(); 141 if (filters != null) { 142 viewer.setFilters(filters); 143 } 144 TimeLineSorter sorter = tab.getSorter(); 145 if (sorter != null) { 146 viewer.setSorter(sorter); 147 } 147 148 148 149 tab.getTabItem().setControl(viewer.getTable()); … … 165 166 * @param tab 166 167 */ 167 public staticvoid initTable(SabotterTabModel tab) {168 public void initTable(SabotterTabModel tab) { 168 169 Table table = tab.getViewer().getTable(); 169 170 TableLayout layout = new TableLayout(); … … 174 175 175 176 ColumnLayoutData[] columnLayouts = 176 getColumnLayouts( DEFAULT_COLUMN_LAYOUTS);177 getColumnLayouts(tab, DEFAULT_COLUMN_LAYOUTS); 177 178 178 179 for (int i = 0; i < columnLayouts.length; i++) { … … 183 184 name.setText(Messages.col_name); 184 185 name.addSelectionListener(new ColumnHeaderSelectionListener(tab)); 185 name.addControlListener(new ColumnSizeListener( ));186 name.addControlListener(new ColumnSizeListener(view)); 186 187 187 188 TableColumn message = new TableColumn(table, SWT.NULL); 188 189 message.setText(Messages.col_message); 189 190 message.addSelectionListener(new ColumnHeaderSelectionListener(tab)); 190 message.addControlListener(new ColumnSizeListener( ));191 message.addControlListener(new ColumnSizeListener(view)); 191 192 192 193 TableColumn time = new TableColumn(table, SWT.NULL); 193 194 time.setText(Messages.col_time); 194 195 time.addSelectionListener(new ColumnHeaderSelectionListener(tab)); 195 time.addControlListener(new ColumnSizeListener()); 196 } 197 198 private static ColumnLayoutData[] getColumnLayouts(ColumnPixelData[] data) { 196 time.addControlListener(new ColumnSizeListener(view)); 197 } 198 199 private static ColumnLayoutData[] getColumnLayouts(SabotterTabModel tab, 200 ColumnPixelData[] data) { 199 201 ColumnPixelData[] result = new ColumnPixelData[data.length]; 200 202 for (int i = 0; i < data.length; i++) { 201 203 int width = data[i].width; 204 // FIXME ないわー。なさすぎる。どんな実装だこれ。仮実装にしたって無いだろこれw やばいって俺w 205 int tmpWidth = 0; 206 switch (i) { 207 case 0: 208 tmpWidth = tab.getColumnSize(Messages.col_name); 209 break; 210 case 1: 211 tmpWidth = tab.getColumnSize(Messages.col_message); 212 break; 213 case 2: 214 tmpWidth = tab.getColumnSize(Messages.col_time); 215 break; 216 default: 217 } 218 if (tmpWidth != 0) { 219 width = tmpWidth; 220 } 202 221 result[i] = new ColumnPixelData(width); 203 222 } -
lang/java/sabotter/trunk/src/jp/xet/eclipse/sabotter/preferences/SabotterPreference.java
r11395 r11405 6 6 7 7 /** 8 * 設定の読み出し クラス。8 * 設定の読み出しinterface。 9 9 * 10 10 * @author daisuke … … 153 153 Color getUnreadStatusBackgroundColor(); 154 154 155 void setTabState(String xml); 156 157 String getTabState(); 158 155 159 } -
lang/java/sabotter/trunk/src/jp/xet/eclipse/sabotter/preferences/SabotterPreferenceImpl.java
r11395 r11405 242 242 } 243 243 244 public void setTabState(String xml) { 245 ps.setValue("TAB_STATE", xml); 246 } 247 248 public String getTabState() { 249 return ps.getString("TAB_STATE"); 250 } 251 244 252 } -
lang/java/sabotter/trunk/src/jp/xet/eclipse/sabotter/views/ColumnSizeListener.java
r11291 r11405 12 12 public class ColumnSizeListener extends ControlAdapter { 13 13 14 private SabotterView view; 15 16 17 /** 18 * コンストラクタ。 19 * 20 * @param view 21 */ 22 public ColumnSizeListener(SabotterView view) { 23 this.view = view; 24 25 } 26 14 27 /** 15 28 * Override. … … 21 34 TableColumn column = (TableColumn) e.widget; 22 35 int width = column.getWidth(); 23 System.out.println("controlResized:" + e + " - " + width); // TODO 36 // FIXME Textをキーにしてるのがイケてない。 37 view.getCurrentTab().setColumnSize(column.getText(), width); 24 38 } 25 39 -
lang/java/sabotter/trunk/src/jp/xet/eclipse/sabotter/views/SabotterTabModel.java
r11281 r11405 1 1 package jp.xet.eclipse.sabotter.views; 2 3 import java.util.HashMap; 4 import java.util.Map; 2 5 3 6 import jp.xet.eclipse.sabotter.filters.TimeLineFilter; 4 7 8 import org.apache.commons.lang.builder.ToStringBuilder; 5 9 import org.eclipse.jface.viewers.TableViewer; 6 10 import org.eclipse.swt.custom.CTabItem; … … 27 31 28 32 private TimeLineSorter sorter; 33 34 private Map<String, Integer> columnSizes = new HashMap<String, Integer>(); 29 35 30 36 … … 92 98 } 93 99 100 public int getColumnSize(String key) { 101 Integer size = getColumnSizes().get(key); 102 return size == null ? 0 : size; 103 } 104 105 public void setColumnSize(String key, int columnSize) { 106 getColumnSizes().put(key, columnSize); 107 } 108 109 public Map<String, Integer> getColumnSizes() { 110 if (columnSizes == null) { 111 columnSizes = new HashMap<String, Integer>(); 112 } 113 return columnSizes; 114 } 115 116 @Override 117 public String toString() { 118 return ToStringBuilder.reflectionToString(this); 119 } 94 120 } -
lang/java/sabotter/trunk/src/jp/xet/eclipse/sabotter/views/SabotterView.java
r11312 r11405 73 73 import org.eclipse.ui.part.ViewPart; 74 74 75 import com.thoughtworks.xstream.XStream; 76 75 77 /** 76 78 * さぼったービュー(一番メインとなっているクラス) … … 226 228 */ 227 229 public SabotterView() { 228 // TODO ステート読み出し 230 try { 231 List<SabotterTabModel> tabs = loadTabState(); 232 if (tabs != null) { 233 this.tabs = tabs; 234 } 235 } catch (Exception e) { 236 SabotterPlugin.handleException(e, SabotterPlugin.LOG); 237 } 229 238 } 230 239 … … 236 245 @Override 237 246 public void dispose() { 238 // TODO ステート保存 247 // FIXME このようにしたい。が、この時点で全てのtabはdispose済み、tabs.size() == 0 であるorz 248 saveTabState(); 239 249 super.dispose(); 250 } 251 252 private List<SabotterTabModel> loadTabState() { 253 String xml = pref.getTabState(); 254 System.out.println("====load start========"); 255 System.out.println(xml); 256 System.out.println("====load end=========="); 257 XStream xstream = new XStream(); 258 return (List<SabotterTabModel>) xstream.fromXML(xml); 259 } 260 261 private void saveTabState() { 262 XStream xstream = new XStream(); 263 String xml = xstream.toXML(tabs); 264 System.out.println("====save start========"); 265 System.out.println(xml); 266 System.out.println("====save end=========="); 267 pref.setTabState(xml); 240 268 } 241 269
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)