⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ganttcsvexport.java

📁 It is all about project scheduling. GanttProject is a tool for creating a project schedule by means
💻 JAVA
字号:
/*************************************************************************** GanttCSVExport.java ----------------- begin                : 7 juil. 2004 copyright            : (C) 2004 by Thomas Alexandre email                : alexthomas@ganttproject.org ***************************************************************************//*************************************************************************** *                                                                         * *   This program is free software; you can redistribute it and/or modify  * *   it under the terms of the GNU General Public License as published by  * *   the Free Software Foundation; either version 2 of the License, or     * *   (at your option) any later version.                                   * *                                                                         * ***************************************************************************/package net.sourceforge.ganttproject.io;import java.io.IOException;import java.io.OutputStream;import java.io.OutputStreamWriter;import java.util.ArrayList;import java.util.List;import net.sourceforge.ganttproject.GanttTask;import net.sourceforge.ganttproject.IGanttProject;import net.sourceforge.ganttproject.resource.HumanResource;import net.sourceforge.ganttproject.resource.HumanResourceManager;import net.sourceforge.ganttproject.roles.Role;import net.sourceforge.ganttproject.task.ResourceAssignment;import net.sourceforge.ganttproject.task.Task;/** * @author athomas Class to export the project in csv text format */public class GanttCSVExport {    // private GanttTree tree;    // private GanttResourcePanel peop;    private CSVOptions csvOptions;    private HumanResourceManager myHrManager;    // ArrayList lot = new ArrayList();    Task[] myTasks;    List resources = new ArrayList();    int iMaxSize = 0;    boolean bFixedSize = false;    /** Constructor. */    public GanttCSVExport(IGanttProject project, CSVOptions csvOptions) {        myTasks = project.getTaskManager().getTasks();        myHrManager = (HumanResourceManager) project.getHumanResourceManager();        this.csvOptions = csvOptions;    }    /** Save the project as CSV on a stream */    public void save(OutputStream stream) {        try {            OutputStreamWriter out = new OutputStreamWriter(stream);            beginToSave(out);            out.close();        } catch (IOException e) {            System.out.println("Error in saving the csv file");        } catch (Exception e) {            System.out.println(e);            e.printStackTrace();        }    }    /** Start saving the csv document. */    public void beginToSave(OutputStreamWriter out) throws IOException {        resources = myHrManager.getResources();        bFixedSize = csvOptions.bFixedSize;        if (csvOptions.bFixedSize)            getMaxSize();        /*         * writeProjectInfos(out); out.write("\n");         */        writeTasks(out);        out.write("\n");        writeResources(out);        out.write("\n");    }    /** Write the project information on the file. */    private void writeProjectInfos(OutputStreamWriter out) throws IOException {    }    /** Write all tasks. */    private void writeTasks(OutputStreamWriter out) throws IOException {        // parse all tasks        for (int i = 0; i < myTasks.length; i++) {            Task task = myTasks[i];            // ID            if (csvOptions.bExportTaskID)                out.write(correctField("" + task.getTaskID())                        + (bFixedSize ? "" : csvOptions.sSeparatedChar));            // Name            if (csvOptions.bExportTaskName)                out.write((bFixedSize ? "" : csvOptions.sSeparatedTextChar)                        + correctField(getName(task))                        + (bFixedSize ? "" : csvOptions.sSeparatedTextChar                                + csvOptions.sSeparatedChar));            // Start Date            if (csvOptions.bExportTaskStartDate)                out.write(correctField(task.getStart().toString())                        + (bFixedSize ? "" : csvOptions.sSeparatedChar));            // End Date            if (csvOptions.bExportTaskEndDate)                out.write(correctField(task.getEnd().toString())                        + (bFixedSize ? "" : csvOptions.sSeparatedChar));            // Duration            if (csvOptions.bExportTaskDuration)                out.write(correctField("" + task.getDuration().getLength())                        + (bFixedSize ? "" : csvOptions.sSeparatedChar));            // Percent complete            if (csvOptions.bExportTaskPercent)                out.write(correctField("" + task.getCompletionPercentage())                        + (bFixedSize ? "" : csvOptions.sSeparatedChar));            // Web Link            if (csvOptions.bExportTaskWebLink)                out.write((bFixedSize ? "" : csvOptions.sSeparatedTextChar)                        + correctField(getWebLink((GanttTask) task))                        + (bFixedSize ? "" : csvOptions.sSeparatedTextChar                                + csvOptions.sSeparatedChar));            // associated resources            if (csvOptions.bExportTaskResources) {                out.write((bFixedSize ? "" : csvOptions.sSeparatedTextChar));                out.write(correctField(getAssignments(task)));                out.write((bFixedSize ? "" : csvOptions.sSeparatedTextChar                        + csvOptions.sSeparatedChar));            }            // Notes            if (csvOptions.bExportTaskNotes)                out.write((bFixedSize ? "" : csvOptions.sSeparatedTextChar)                        + correctField(task.getNotes())                        + (bFixedSize ? "" : csvOptions.sSeparatedTextChar                                + csvOptions.sSeparatedChar));            out.write("\n");        }    } // end of write tasks    /** write the resources. */    private void writeResources(OutputStreamWriter out) throws IOException {        // parse all resources        for (int i = 0; i < resources.size(); i++) {            HumanResource p = (HumanResource) resources.get(i);            // ID            if (csvOptions.bExportResourceID)                out.write(correctField("" + p.getId())                        + (bFixedSize ? "" : csvOptions.sSeparatedChar));            // Name            if (csvOptions.bExportResourceName)                out.write((bFixedSize ? "" : csvOptions.sSeparatedTextChar)                        + correctField(p.getName())                        + (bFixedSize ? "" : csvOptions.sSeparatedTextChar                                + csvOptions.sSeparatedChar));            // Mail            if (csvOptions.bExportResourceMail)                out.write((bFixedSize ? "" : csvOptions.sSeparatedTextChar)                        + correctField(p.getMail())                        + (bFixedSize ? "" : csvOptions.sSeparatedTextChar                                + csvOptions.sSeparatedChar));            // Phone            if (csvOptions.bExportResourcePhone)                out.write((bFixedSize ? "" : csvOptions.sSeparatedTextChar)                        + correctField(p.getPhone())                        + (bFixedSize ? "" : csvOptions.sSeparatedTextChar                                + csvOptions.sSeparatedChar));            // Role            if (csvOptions.bExportResourcePhone) {                Role role = p.getRole();                String sRoleID = "0";                if (role != null)                    sRoleID = role.getPersistentID();                out.write((bFixedSize ? "" : csvOptions.sSeparatedTextChar)                        + correctField(sRoleID)                        + (bFixedSize ? "" : csvOptions.sSeparatedTextChar                                + csvOptions.sSeparatedChar));            }            out.write("\n");        }    } // end of write resources    /** set the maximum size for all strings. */    void getMaxSize() {        iMaxSize = 0;        for (int i = 0; i < myTasks.length; i++) {            Task task = myTasks[i];            if (csvOptions.bExportTaskID) {                String s = "" + task.getTaskID();                if (s.length() > iMaxSize)                    iMaxSize = s.length();            }            if (csvOptions.bExportTaskName) {                String s = "" + getName(task);                if (s.length() > iMaxSize)                    iMaxSize = s.length();            }            if (csvOptions.bExportTaskStartDate) {                String s = "" + task.getStart();                if (s.length() > iMaxSize)                    iMaxSize = s.length();            }            if (csvOptions.bExportTaskEndDate) {                String s = "" + task.getEnd();                if (s.length() > iMaxSize)                    iMaxSize = s.length();            }            if (csvOptions.bExportTaskDuration) {                String s = "" + task.getDuration().getLength();                if (s.length() > iMaxSize)                    iMaxSize = s.length();            }            if (csvOptions.bExportTaskPercent) {                String s = "" + task.getCompletionPercentage();                if (s.length() > iMaxSize)                    iMaxSize = s.length();            }            if (csvOptions.bExportTaskWebLink) {                String s = "" + getWebLink((GanttTask) task);                if (s.length() > iMaxSize)                    iMaxSize = s.length();            }            if (csvOptions.bExportTaskResources) {                String s = "" + getAssignments(task);                if (s.length() > iMaxSize)                    iMaxSize = s.length();            }            if (csvOptions.bExportTaskNotes) {                String s = "" + task.getNotes();                if (s.length() > iMaxSize)                    iMaxSize = s.length();            }        }        // parse all resources        for (int i = 0; i < resources.size(); i++) {            HumanResource p = (HumanResource) resources.get(i);            if (csvOptions.bExportResourceID) {                String s = "" + p.getId();                if (s.length() > iMaxSize)                    iMaxSize = s.length();            }            if (csvOptions.bExportResourceName) {                String s = "" + p.getName();                if (s.length() > iMaxSize)                    iMaxSize = s.length();            }            if (csvOptions.bExportResourceMail) {                String s = "" + p.getMail();                if (s.length() > iMaxSize)                    iMaxSize = s.length();            }            if (csvOptions.bExportResourcePhone) {                String s = "" + p.getPhone();                if (s.length() > iMaxSize)                    iMaxSize = s.length();            }            if (csvOptions.bExportResourceRole) {                Role role = p.getRole();                String sRoleID = "0";                if (role != null)                    sRoleID = role.getPersistentID();                String s = "" + sRoleID;                if (s.length() > iMaxSize)                    iMaxSize = s.length();            }        }    } // get maxIndentation end    /** @return the name of task with the correct level. */    private String getName(Task task) {        if (bFixedSize)            return task.getName();        String res = "";        int depth = task.getManager().getTaskHierarchy().getDepth(task);        for (int i = 0; i < depth; i++) {            res += "  ";        }        return res + task.getName();    }    /** @return the link of the task. */    private String getWebLink(GanttTask task) {        return (task.getWebLink().equals("http://") ? "" : task.getWebLink());    }    /** @return the list of the assignment for the resources. */    private String getAssignments(Task task) {        String res = "";        ResourceAssignment[] assignment = task.getAssignments();        for (int i = 0; i < assignment.length; i++)            res += (assignment[i].getResource() + (i == assignment.length - 1 ? ""                    : csvOptions.sSeparatedChar.equals(";") ? "," : ";"));        return res;    }    private String correctField(String field) {        String res = "";        for (int i = 0; i < iMaxSize - field.length(); i++)            res += " ";        res += field;        return res;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -