From e5d05ef173b538652a98127d93086372ff51f5e3 Mon Sep 17 00:00:00 2001 From: Victor Date: Mon, 2 Dec 2013 14:14:38 +0200 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=BE=20=D1=87=D1=82=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B8=20?= =?UTF-8?q?=D0=BE=D1=82=D1=80=D0=B8=D1=81=D0=BE=D0=B2=D0=BA=D0=B0=20=D0=BE?= =?UTF-8?q?=D0=B1=D1=8A=D0=B5=D0=BA=D1=82=D0=BE=D0=B2=20=D0=B8=D0=B7=20CSV?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/tse/lr5/TrianglesWindow.java | 84 ++++++++++++++++++++++++++++---- 1 file changed, 75 insertions(+), 9 deletions(-) diff --git a/src/tse/lr5/TrianglesWindow.java b/src/tse/lr5/TrianglesWindow.java index c728713..131885f 100644 --- a/src/tse/lr5/TrianglesWindow.java +++ b/src/tse/lr5/TrianglesWindow.java @@ -1,7 +1,11 @@ package tse.lr5; +import java.awt.Color; +import java.awt.Point; import java.io.File; +import java.io.IOException; import javax.swing.JFrame; +import javax.swing.JOptionPane; /** * @author aNNiMON @@ -20,17 +24,79 @@ public class TrianglesWindow extends JFrame { pack(); } - public void execute() throws InterruptedException { - setVisible(true); - + public void execute() { File[] csvFiles = Utils.readFiles("lr5", ".csv"); + if (csvFiles == null) { + JOptionPane.showMessageDialog(this, "CSV-файлов не обнаружено! Сворачиваемся, ребята", + "Ошибка", JOptionPane.ERROR_MESSAGE); + return; + } System.out.println("Найдено " + csvFiles.length + " файлов."); - System.out.println("3"); - Thread.sleep(1000); - System.out.println("2"); - Thread.sleep(1000); - System.out.println("1"); - Thread.sleep(1000); + + setVisible(true); + try { + System.out.println("3"); + Thread.sleep(1000); + System.out.println("2"); + Thread.sleep(1000); + System.out.println("1"); + Thread.sleep(1000); + } catch (InterruptedException ex) { } System.out.println("Понеслась!!"); + + for (File file : csvFiles) { + startReadInNewThread(file); + } } + + private void startReadInNewThread(final File file) { + new Thread(new Runnable() { + + @Override + public void run() { + readCsvFile(file); + } + }).start(); + } + + private void readCsvFile(File file) { + CsvReader csvReader = new CsvReader<>(file); + csvReader.setReaderHandler(trianglesHandler); + try { + csvReader.readCsv(); + } catch (IOException ex) { + ex.printStackTrace(); + } + } + + private final CsvReader.ReaderHandler trianglesHandler + = new CsvReader.ReaderHandler() { + + @Override + public void onStartRead(File file) { + System.out.println("Читаем файл " + file.getName()); + } + + @Override + public TrianglePaintable createObject(String[] params) { + if (params.length != 8) throw new RuntimeException("Неверное количество параметров"); + + Color fill = Color.decode(params[0]); + Color stroke = Color.decode(params[1]); + Point p1 = Utils.readPoint(params[2], params[3]); + Point p2 = Utils.readPoint(params[4], params[5]); + Point p3 = Utils.readPoint(params[6], params[7]); + TrianglePaintable obj = new TrianglePaintable(fill, stroke, p1, p2, p3); + panel.addPaintable(obj); + try { + Thread.sleep(500); + } catch (InterruptedException ex) { } + return obj; + } + + @Override + public void onFinishRead(File file) { + System.out.println("Чтение файла " + file.getName() + " завершено!"); + } + }; }