Package org.geotools.data.dxf.header

Source Code of org.geotools.data.dxf.header.DXFLayer

package org.geotools.data.dxf.header;

import java.io.EOFException;
import java.io.IOException;
import java.util.Vector;


import org.geotools.data.dxf.parser.DXFParseException;
import org.geotools.data.dxf.parser.DXFLineNumberReader;
import org.geotools.data.dxf.entities.DXFEntity;
import org.geotools.data.dxf.parser.DXFCodeValuePair;
import org.geotools.data.dxf.parser.DXFConstants;
import org.geotools.data.dxf.parser.DXFGroupCode;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
*
*
* @source $URL$
*/
public class DXFLayer extends DXFEntity implements DXFConstants {

    private static final Log log = LogFactory.getLog(DXFLayer.class);
   
    public static final String DEFAULT_NAME = "default";
    public int _flag = 0;
    public Vector<DXFEntity> theEnt = new Vector<DXFEntity>();

    public DXFLayer(String nom, int c) {
        super(c, null, 0, null, DXFTables.defaultThickness);
        setName(nom);
    }

    public DXFLayer(String nom, int c, int flag) {
        super(c, null, 0, null, DXFTables.defaultThickness);
        setName(nom);
        _flag = flag;
    }

    @Override
    public void setVisible(boolean bool) {
        super.setVisible(bool); // FIXED; added 'super.'
        for (int i = 0; i < theEnt.size(); i++) {
            ((DXFEntity) theEnt.get(i)).setVisible(bool);
        }
    }

    public static DXFLayer read(DXFLineNumberReader br) throws NumberFormatException, IOException {
        String name = "";
        int f = 0, color = 0;

        DXFCodeValuePair cvp = null;
        DXFGroupCode gc = null;

        int sln = br.getLineNumber();
        log.debug(">>Enter at line: " + sln);
        boolean doLoop = true;
        while (doLoop) {
            cvp = new DXFCodeValuePair();
            try {
                gc = cvp.read(br);
            } catch (DXFParseException ex) {
                throw new IOException("DXF parse error" + ex.getLocalizedMessage());
            } catch (EOFException e) {
                doLoop = false;
                break;
            }

            switch (gc) {
                case TYPE:
                case VARIABLE_NAME:
                    br.reset();
                    doLoop = false;
                    break;
                case NAME:
                    name = cvp.getStringValue();
                    break;
                case COLOR:
                    color = cvp.getShortValue();
                    break;
                case INT_1:
                    f = cvp.getShortValue();
                    break;
                default:
            }
        }

        DXFLayer l = new DXFLayer(name, color, f);
        if (color < 0) {
            l.setVisible(false);
        }
        log.debug(l.toString(name, color, f));
        log.debug(">Exit at line: " + br.getLineNumber());
        return l;
    }

    public String toString(String name, int color, int f) {
        StringBuffer s = new StringBuffer();
        s.append("DXFLayer [");
        s.append("name: ");
        s.append(name + ", ");
        s.append("color: ");
        s.append(color + ", ");
        s.append("f: ");
        s.append(f);
        s.append("]");
        return s.toString();
    }
   
    @Override
    public DXFEntity translate(double x, double y) {
        return this;
    }

    public DXFEntity clone(){
        return this;
    }
}
TOP

Related Classes of org.geotools.data.dxf.header.DXFLayer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.