All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jdplus.toolkit.desktop.plugin.ui.properties.l2fprod.SequenceDescriptor Maven / Gradle / Ivy

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package jdplus.toolkit.desktop.plugin.ui.properties.l2fprod;

import jdplus.toolkit.desktop.plugin.descriptors.EnhancedPropertyDescriptor;
import jdplus.toolkit.desktop.plugin.descriptors.IObjectDescriptor;
import java.beans.IntrospectionException;
import java.beans.PropertyDescriptor;
import java.time.Clock;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Jean Palate
 */
public class SequenceDescriptor implements IObjectDescriptor {

    private LocalDate start, end;

    @Override
    public String toString() {
        return getCore().toString();
    }

    public SequenceDescriptor() {
        start = LocalDate.now(Clock.systemDefaultZone());
        end = LocalDate.now(Clock.systemDefaultZone());
    }

    public SequenceDescriptor(Sequence seq) {
        start = seq.getStart();
        end = seq.getEnd();
    }

    public SequenceDescriptor duplicate() {
        SequenceDescriptor ndesc = new SequenceDescriptor();
        ndesc.start = start;
        ndesc.end = end;
        return ndesc;
    }

    @Override
    public Sequence getCore() {
        return new Sequence(start, end);
    }

    public LocalDate getStart() {
        return start;
    }

    public void setStart(LocalDate day) {
        start = day;
    }

    public LocalDate getEnd() {
        return end;
    }

    public void setEnd(LocalDate day) {
        end = day;
    }

    @Override
    public List getProperties() {
        ArrayList descs = new ArrayList<>();
        EnhancedPropertyDescriptor desc = startDesc();
        if (desc != null) {
            descs.add(desc);
        }
        desc = endDesc();
        if (desc != null) {
            descs.add(desc);
        }
        return descs;
    }
    private static final int START_ID = 1,
            END_ID = 2;

    private EnhancedPropertyDescriptor startDesc() {
        try {
            PropertyDescriptor desc = new PropertyDescriptor("start", this.getClass());
            EnhancedPropertyDescriptor edesc = new EnhancedPropertyDescriptor(desc, START_ID);
            desc.setDisplayName("Start");
            //edesc.setReadOnly(true);
            return edesc;
        } catch (IntrospectionException ex) {
            return null;
        }
    }

    private EnhancedPropertyDescriptor endDesc() {
        try {
            PropertyDescriptor desc = new PropertyDescriptor("end", this.getClass());
            EnhancedPropertyDescriptor edesc = new EnhancedPropertyDescriptor(desc, END_ID);
            desc.setDisplayName("End");
            //edesc.setReadOnly(true);
            return edesc;
        } catch (IntrospectionException ex) {
            return null;
        }
    }

    @Override
    public String getDisplayName() {
        return "Sequence";
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy