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

📄 ganttxfigsaver.java

📁 It is all about project scheduling. GanttProject is a tool for creating a project schedule by means
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
            boxObject.sub_type = 2; // box            boxObject.npoints = 5;        } else {            boxObject.sub_type = 3; // polygon            boxObject.npoints = 7;        }        boxObject.depth = depthval;        if (!isLeaf)            boxObject.depth -= 2; // ?????        // See BoxObject class for other default values        // Construct box corners        float boxLen = Math.max(1.0f, (task.getLength()) * scale);        float boxLenPct = Math.max(1.0f, boxLen                * task.getCompletionPercentage() / 100.0f);        float boxHeight = 1200.0f / 8.0f;        float pLo = boxHeight * 0.25f;        float pHi = boxHeight * 0.75f;        float[] pointsPct = { 0, pLo, boxLenPct, pLo, boxLenPct, pHi, 0, pHi,                0, pLo };        if (boxObject.sub_type == 2) {            boxObject.points = new float[10];            boxObject.points[0] = 0;            boxObject.points[1] = 0;            boxObject.points[2] = boxLen;            boxObject.points[3] = 0;            boxObject.points[4] = boxLen;            boxObject.points[5] = boxHeight;            boxObject.points[6] = 0;            boxObject.points[7] = boxHeight;            boxObject.points[8] = 0;            boxObject.points[9] = 0;        } else {            float boxLo = boxHeight / 4;            boxObject.points = new float[14];            boxObject.points[0] = 0;            boxObject.points[1] = boxHeight;            boxObject.points[2] = 0;            boxObject.points[3] = 0;            boxObject.points[4] = boxLen;            boxObject.points[5] = 0;            boxObject.points[6] = boxLen;            boxObject.points[7] = boxHeight; // top bow            boxObject.points[8] = boxLen;            boxObject.points[9] = boxLo;            boxObject.points[10] = 0;            boxObject.points[11] = boxLo;            boxObject.points[10] = 0;            boxObject.points[13] = boxHeight;        }        int blen = boxObject.points.length;        // shift to this row        float xShift = 0;        float yShift = 1200.0f * 0.25f * ((float) number + 4) + 1200.0f / 16.0f;        /*         * boxObject.points(2:2:blen) += yShift; boxObject.points(1:2:blen) +=         * xShift;         */        for (int i = 1; i < blen; i += 2)            boxObject.points[i] += yShift;        for (int i = 0; i < blen; i += 2)            boxObject.points[i] += xShift;        // pointsPct(2:2:10) += yShift;        // pointsPct(1:2:9) += xShift;        // boxObjectPct = boxObject; // percent completed        // boxObjectPct.points = pointsPct;        // boxObjectPct.npoints = 5;        // boxObjectPct.area_fill = 20;        // boxObjectPct.fill_color = 0;        // shift boxes by start date        /* boxObject.points(1:2:blen) += task.start*boxScale; */        for (int i = 0; i < blen; i += 2)            boxObject.points[i] += task.getStart().diff(dateShift) * scale;        // boxObjectPct.points(1:2:9) += task.start*boxScale;        // now shift again by text width (must be calculated and set in        // task.boxindent)        /* boxObject.points(1:2:blen) += task.boxindent; */        for (int i = 0; i < blen; i += 2)            boxObject.points[i] += fTtextwidth + 120;        // boxObjectPct.points(1:2:9) += task.boxindent;        // boxObjectPct.depth--;        // fix angle brackets in polygon object        /*         * if(boxObject.sub_type == 3) { angwid = min(60,boxLen/2);         * boxObject.points([9,11]) += [-angwid,angwid]; }         */        if (boxObject.sub_type == 3) {            float angwid = Math.min(60, boxLen / 2);            boxObject.points[9] += -angwid;            boxObject.points[11] += angwid;        }        return boxObject;    }    /** Draw the list of tasks. */    public void drawTasks(OutputStreamWriter fout) throws IOException {        try {            if (debug)                System.out.println("drawTasks begin");            // loop on tasks            int i = 0;            for (Iterator it = lot.iterator(); it.hasNext();) {                DefaultMutableTreeNode node = ((DefaultMutableTreeNode) it                        .next());                // get the task                if (!node.isRoot()) {                    GanttTask task = (GanttTask) (node.getUserObject());                    TextObject txtObj = (TextObject) (atl.get(i));                    BoxObject boxObject = (BoxObject) (abl.get(i));                    // print the text of the task                    drawtext(fout, txtObj);                    // print the box of the task                    drawbox(fout, boxObject);                    // print the percent complete                    // print relations                    // update index                    i++;                }            }            if (debug)                System.out.println("drawTasks end");        } catch (Exception e) {            System.out.println(e);        }    }    /** Draw text for the taskObject. */    public void drawtext(OutputStreamWriter fout, TextObject txtObj)            throws IOException {        if (debug)            System.out.println("drawtext begin");        fout.write("4 ");        fout.write(txtObj.sub_type + " ");        fout.write(txtObj.color + " ");        fout.write(txtObj.depth + " ");        fout.write(txtObj.pen_style + " ");        fout.write(txtObj.font + " ");        fout.write(txtObj.font_size + " ");        fout.write(txtObj.angle + " ");        fout.write(txtObj.font_flags + " ");        fout.write(txtObj.height + " " + txtObj.length + " ");        fout.write(txtObj.x + " " + txtObj.y + " ");        fout.write(txtObj.str + "\\001\n");        if (debug)            System.out.println("drawtext end");    }    /** draw the box of the task. */    public void drawbox(OutputStreamWriter fout, BoxObject boxObject)            throws IOException {        if (debug)            System.out.println("drawbox begin");        // draw an xfig box object;        fout.write("2 ");        fout.write(boxObject.sub_type + " ");        fout.write(boxObject.line_style + " ");        fout.write(boxObject.thickness + " ");        fout.write(boxObject.pen_color + " ");        fout.write(boxObject.fill_color + " ");        fout.write(boxObject.depth + " ");        fout.write(boxObject.pen_style + " ");        fout.write(boxObject.area_fill + " ");        fout.write(" " + boxObject.style_val + "  ");        fout.write(boxObject.join_style + " ");        fout.write(boxObject.cap_style + " ");        fout.write(boxObject.radius + " ");        fout.write(boxObject.forward_arrow + " ");        fout.write(boxObject.backward_arrow + " ");        fout.write(boxObject.npoints + "\n\t");        int arrow_type = 1;        int arrow_style = 1;        float arrow_thickness = 1.00f;        float arrow_width = 60.0f;        float arrow_height = 60.0f;        if (boxObject.sub_type == 3) {            if (boxObject.forward_arrow != 0) {                System.out.println("forward");                fout.write("      " + (int) arrow_type + " "                        + (int) arrow_style + " " + (int) arrow_thickness                        + (int) arrow_width + " " + (int) arrow_height + "\n");            }            if (boxObject.backward_arrow != 0) {                fout.write("      " + (int) arrow_type + " "                        + (int) arrow_style + " " + (int) arrow_thickness                        + (int) arrow_width + " " + (int) arrow_height + "\n");                System.out.println("back");            }        }        for (int i = 0; i < boxObject.points.length; i++)            fout.write((int) (boxObject.points[i]) + " ");        fout.write("\n");        if (debug)            System.out.println("drawbox end");    }    /** Draw the axes. */    public void labelAxes(OutputStreamWriter fout) {        // TODO write this method        if (debug)            System.out.println("labelAxes begin");        if (debug)            System.out.println("labelAxes end");    }    /** @return a color as a string like #00FF00 for green color. */    private String getHexaColor(Color color) {        if (debug)            System.out.println("getHexaColor begin");        String sColor = "#"; // result string        if (color.getRed() <= 15)            sColor += "0";        sColor += Integer.toHexString(color.getRed());        if (color.getGreen() <= 15)            sColor += "0";        sColor += Integer.toHexString(color.getGreen());        if (color.getBlue() <= 15)            sColor += "0";        sColor += Integer.toHexString(color.getBlue());        if (debug)            System.out.println("getHexaColor end");        return sColor;    }    /** Class to store text informations. */    private class TextObject {        int sub_type;        int color;        int depth;        int pen_style;        int font;        float font_size;        float angle;        int font_flags;        float height;        float length;        int x;        int y;        String str = "";    }    /** Class to store box informations. */    private class BoxObject {        int code = 2; // polyline always        int npoints;        int sub_type;        int fill_color = 1; // blue color by default        /*         * case ("Black"), boxObject.fill_color = 0; case ("Blue"),         * boxObject.fill_color = 1; case ("Green"), boxObject.fill_color = 2;         * case ("Cyan"), boxObject.fill_color = 3; case ("Red"),         * boxObject.fill_color = 4; case ("Magenta"), boxObject.fill_color = 5;         * case ("Yellow"), boxObject.fill_color = 6; case ("White"),         * boxObject.fill_color = 7;         */        int line_style = 0;        int thickness = 1;        int pen_color = 0;        int depth;        int pen_style = 0;        int area_fill = 20;        int style_val = 0;        int join_style = 0;        int cap_style = 0;        int radius = 0;        int forward_arrow = 0;        int backward_arrow = 0;        float[] points;    }}

⌨️ 快捷键说明

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