/******************************************************************************* * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Exadel, Inc. and Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.jsf.ui.editor.model.impl; import java.beans.PropertyVetoException; import org.w3c.dom.*; import org.jboss.tools.jsf.ui.JsfUiPlugin; import org.jboss.tools.jsf.ui.editor.model.ILink; import org.jboss.tools.jsf.ui.editor.model.ISegment; public class Segment extends JSFElement implements ISegment { int length; public Segment(ILink parent, Element segmentElement, ISegment prevSegment) { super(parent); try { setName("SEGMENT"); String s = segmentElement.getAttribute("length"); //$NON-NLS-1$ if(s == null || s.length() == 0) { length = 0; } else { length = Integer.parseInt(s); } } catch(PropertyVetoException exception) { length = 0; } catch(NumberFormatException exception) { length = 0; JsfUiPlugin.getPluginLog().logError(exception); } this.prevSegment = prevSegment; if(prevSegment!=null) prevSegment.setNext(this); } public Segment(ILink parent, int length, ISegment prevSegment) { super(parent); try { setName("SEGMENT"); this.length = length; } catch(PropertyVetoException exception) { length = 0; } this.length = length; this.prevSegment = (Segment)prevSegment; if(prevSegment!=null) prevSegment.setNext(this); } ISegment prevSegment; ISegment nextSegment; public ISegment getNext() { return nextSegment; } public ISegment getPrev() { return prevSegment; } public void setPrev(ISegment segment) { ISegment oldPrev = prevSegment; prevSegment = (Segment)segment; propertyChangeSupport.firePropertyChange("prev",oldPrev,segment); //$NON-NLS-1$ } public void setNext(ISegment segment) { ISegment oldNext = nextSegment; nextSegment = (Segment)segment; propertyChangeSupport.firePropertyChange("next",oldNext,segment); //$NON-NLS-1$ } public int getLength() { return length; } public void setLength(int length) { int oldLength = this.length; this.length = length; propertyChangeSupport.firePropertyChange("length",oldLength,length); //$NON-NLS-1$ } public String getName() { return "" + getLength(); //$NON-NLS-1$ } }