Mercurial > hg > jslab
view src/samer/core_/viewers/NumberViewer.java @ 5:b67a33c44de7
Remove some crap, etc
author | samer |
---|---|
date | Fri, 05 Apr 2019 21:34:25 +0100 |
parents | bf79fb79ee13 |
children |
line wrap: on
line source
/* * NumberViewer.java * * Copyright (c) 2000, Samer Abdallah, King's College London. * All rights reserved. * * This software is provided AS iS and WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. */ package samer.core.viewers; import samer.core.util.*; import samer.core.*; import java.awt.*; import java.awt.event.*; import java.util.*; abstract class NumberViewer extends VariableViewer implements FocusListener, AdjustmentListener, ActionListener { TextField t; protected NumberViewer(Variable v) { super(v); setLayout(layout); } protected void init() { Component s = createSlider(); ((Adjustable)s).addAdjustmentListener(this); t = new TextField(4); t.addFocusListener(this); t.addActionListener(this); // panel().add(l,"West"); panel().add(s,"Center"); panel().add(t,"East"); update(null,null); } protected abstract Component createSlider(); protected abstract void getText() throws Exception; protected abstract void setText(); protected abstract void getSlider(); protected abstract void setSlider(); // ....... Viewer bits ................................... public void update(Observable o, Object source) { if (source!=this) { // &&& setText(); setSlider(); } super.update(o,source); } /* // ?? public Dimension getMinimumSize() { return getPreferredSize(); } public Dimension getPreferredSize() { Dimension d=super.getPreferredSize(); Dimension dl=l.getPreferredSize(); Dimension dt=t.getPreferredSize(); // Need to make room for scroll bar d.width = dl.width + dt.width + 96; // ?? return d; } */ // ----------- event handling ------------- private void textChanged() { // enter pressed in text field: // read value from text, set slider and // notify observers. try { getText(); setSlider(); variable.changed(this); } catch (Exception ex) { Shell.trace(ex.toString()); } } public void adjustmentValueChanged(AdjustmentEvent e) { getSlider(); setText(); variable.changed(this); } public void focusGained( FocusEvent e) {} public void focusLost( FocusEvent e) { if (e.getSource()==t) textChanged(); } public void actionPerformed( ActionEvent e) { if (e.getSource()==t) textChanged(); } }