/** * Copyright 1999-2009 The Pegadi Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.pegadi.artis.text; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import javax.swing.text.ComponentView; import javax.swing.text.StyleConstants; import javax.swing.text.View; import java.awt.*; public class LocalComponentView extends ComponentView { public LocalComponentView(javax.swing.text.Element element) { super(element); element.getDocument().addDocumentListener(new DocumentListener() { public void insertUpdate(DocumentEvent e) { } public void removeUpdate(DocumentEvent e) { } public void changedUpdate(DocumentEvent e) { doc_changedUpdate(e); } }); } private void doc_changedUpdate(DocumentEvent e) { if(getComponent() instanceof LocalComponent) { LocalComponent c = (LocalComponent) getComponent(); c.changedUpdate(getElement()); } } public float getMaximumSpan(int axis) { if (axis == View.X_AXIS) { Component comp = StyleConstants.getComponent(getElement().getAttributes()); if (comp != null) return (float) comp.getPreferredSize().getWidth(); } return super.getMaximumSpan(axis); } }