diff --git a/pom.xml b/pom.xml index 4a617ce..31ae2c5 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ info.istlab.IoTP IoTP jar - 0.43 + 0.50 IoTP http://maven.apache.org diff --git a/src/main/java/info/istlab/IoTP/FileReadWriter.java b/src/main/java/info/istlab/IoTP/FileReadWriter.java new file mode 100755 index 0000000..b79f92a --- /dev/null +++ b/src/main/java/info/istlab/IoTP/FileReadWriter.java @@ -0,0 +1,186 @@ +package info.istlab.IoTP; + +import java.io.BufferedInputStream; +import java.io.BufferedReader; +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.FileWriter; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.nio.charset.Charset; +import java.util.ArrayList; + +public class FileReadWriter { + + public static ArrayList getLinesListFromResource(String path){ + ClassLoader cl = FileReadWriter.class.getClassLoader(); + + if (cl == null) { + System.err.println("Resource not found: " + path); + return null; + } else { + InputStream ris = cl.getResourceAsStream(path); + return getLinesListFromInputStream(ris, path); + } + } + public static ArrayList getLinesListFromInputStream(InputStream is, String name){ + ArrayList list = new ArrayList(); + try { + BufferedReader br = new BufferedReader(new InputStreamReader(is, Charset.forName("utf-8"))); + String line = null; + while ((line = br.readLine()) != null) { + list.add(line); + } + br.close(); + } catch (IOException err) { + System.out.println("ReadError: "+name); + } + return list; + } + + public static ArrayList getLinesList(String fn, boolean createIfNotExist){ + File f = new File(fn); + if (createIfNotExist){ + if (!f.exists()){ + try { + if (f.createNewFile()){ + System.out.println("New file "+fn+" Created."); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + } + return getLinesList(fn); + } + + public static ArrayList getLinesList(String fn){ + try { + return getLinesListFromInputStream(new FileInputStream(fn), fn); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } + return null; + } + public static String[] getLines(String fn) { + + ArrayList list = getLinesList(fn); + return (String[]) list.toArray(new String[list.size()]); + } + + public static String getLinesAsString(String fn){ + ArrayList list = getLinesList(fn); + StringBuffer sb = new StringBuffer(); + for(String s: list){ + sb.append(s+"\n"); + } + return sb.toString(); + } + + public static String[] getLinesFromResource(String path){ + ArrayList list = getLinesListFromResource(path); + return (String[]) list.toArray(new String[list.size()]); + } + + public static void putLines(String fn, String data[]) { + try { + FileWriter filewriter = new FileWriter(fn, false); + for (int i = 0; i < data.length; i++) { + filewriter.write(data[i]/*System.getProperty("line.separator")*/); + } + filewriter.close(); + } catch (IOException e) { + System.out.println("WriteError:" + fn); + } + } + + public static void putLines(String fn, ArrayList data) { +// System.out.println(fn); + try { + FileWriter filewriter = new FileWriter(fn, false); + for (String d : data) { + d = d + "\r\n"; + filewriter.write(d); + } + filewriter.close(); + } catch (IOException e) { + System.out.println("WriteError:" + fn); + } + } + public static void putLinesWithLineNum(String fn, ArrayList data){ + try { + FileWriter filewriter = new FileWriter(fn, false); + int lineNum = 0; + for (String d : data) { + filewriter.write(lineNum+""+d+"\r\n"); + lineNum++; + } + filewriter.close(); + } catch (IOException e) { + System.out.println("WriteError:" + fn); + } + } + + public static void putStringToFile(String fn, String out) { +// System.out.println(fn); + try { + FileWriter filewriter = new FileWriter(fn, false); + filewriter.write(out); + filewriter.close(); + } catch (IOException e) { + System.out.println("WriteError:" + fn); + } + } + + public static String[] split(String delim, String text) { + int index = -1; + ArrayList list = new ArrayList(); + while ((index = text.indexOf(delim)) != -1) { + list.add(text.substring(0, index)); + text = text.substring(index + delim.length()); + } + list.add(text); + String[] ret = (String[]) list.toArray(new String[list.size()]); + return ret; + } + + public static void writeBytesToFile(String filepath, byte[] ba){ + OutputStream fos = null; + DataOutputStream dos = null; + try{ + fos = new FileOutputStream(filepath); + dos = new DataOutputStream(fos); + dos.write(ba); + dos.close(); + fos.close(); + }catch(IOException iex){ + iex.printStackTrace(System.out); + } + } + + public static byte[] readBytesFromFile(String path){ + BufferedInputStream in; + ByteArrayOutputStream varyBuf = new ByteArrayOutputStream(); + final int LS = 1024; + int b; + try { + in = new BufferedInputStream(new FileInputStream(path)); + byte buf[] = new byte[LS]; + while((b = in.read(buf, 0, buf.length)) != -1 ) { + varyBuf.write(buf,0,b) ; + } + varyBuf.close(); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return varyBuf.toByteArray(); + } +} diff --git a/src/main/java/info/istlab/IoTP/Launcher.java b/src/main/java/info/istlab/IoTP/Launcher.java index e93aa06..99e70dc 100644 --- a/src/main/java/info/istlab/IoTP/Launcher.java +++ b/src/main/java/info/istlab/IoTP/Launcher.java @@ -31,7 +31,7 @@ public class Launcher extends JFrame implements MouseInputListener, KeyListener, Runnable { public static Launcher theapp; - public static String version = "0.43"; + public static String version = "0.50"; static int reboot_msec = 2000; // JPanel mainP; File root; @@ -331,6 +331,7 @@ TreePath tp = tree.getSelectionModel().getSelectionPath(); if (tp == null) return; + System.out.println(tp.getLastPathComponent().getClass()); File node = (File) tp.getLastPathComponent(); // フォルダなら開かない if (node.isDirectory()) diff --git a/src/main/java/info/istlab/IoTP/MyFile.java b/src/main/java/info/istlab/IoTP/MyFile.java index b569847..b9540f1 100644 --- a/src/main/java/info/istlab/IoTP/MyFile.java +++ b/src/main/java/info/istlab/IoTP/MyFile.java @@ -14,6 +14,7 @@ } // System.out.println(d); return super.toString().replaceAll(d, ""); + //+" hogehoge"; } } diff --git a/src/main/java/info/istlab/IoTP/MyTreeCellRenderer.java b/src/main/java/info/istlab/IoTP/MyTreeCellRenderer.java index 2100774..a8c7974 100644 --- a/src/main/java/info/istlab/IoTP/MyTreeCellRenderer.java +++ b/src/main/java/info/istlab/IoTP/MyTreeCellRenderer.java @@ -3,12 +3,32 @@ import java.awt.Color; import java.awt.Component; import java.io.File; +import java.util.ArrayList; +import java.util.Hashtable; import javax.swing.JTree; import javax.swing.tree.DefaultTreeCellRenderer; public class MyTreeCellRenderer extends DefaultTreeCellRenderer { + public static Hashtable memo; + static { + memo = new Hashtable(); + System.out.println(App.workingDir+ File.separator+ "_filememo.txt"); + ArrayList list = FileReadWriter.getLinesList(App.workingDir+ File.separator+ "_filememo.txt"); + for(String line: list){ + String[] ary = line.split(":"); + String fg = ary[1]; + String bg = ary[2]; + String mes = ary[3]; + if (fg.length()<1) fg = "#aaa"; + if (bg.length()<1) bg = "white"; + + memo.put(ary[0].trim(), ""+mes+""); + + } + } + @Override public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean exp, boolean leaf, int row, boolean hasFocus) { @@ -18,11 +38,26 @@ String node = (String) ((File) value).toString(); // If the node is a leaf and ends with "xxx" - if (leaf && !node.endsWith(".ino")) { + if (leaf && !node.contains(".ino")) { // Paint the node in blue setForeground(new Color(200, 200,230)); // setBackground(new Color(30, 30,50)); } + if (memo.containsKey(node.trim())){ + setText(""+node+" "+memo.get(node.trim())+""); + } + // valueがTreePathのインスタンスかを確認して、必要に応じて処理を行う + // if (value instanceof DefaultMutableTreeNode) { + // DefaultMutableTreeNode node2 = (DefaultMutableTreeNode) value; + // Object userObject = node2.getUserObject(); + // if (userObject instanceof String) { + // String text = (String) userObject; + // // ラベルの一部の色を変更する + // if (text.contains("hogehoge")) { + // setText("部分的に変更したいテキスト"); + // } + // } + // } return this; }