package com.applang.berichtsheft.plugin; import java.awt.BorderLayout; import java.awt.Dimension; import javax.swing.JPanel; import org.gjt.sp.jedit.EBComponent; import org.gjt.sp.jedit.EBMessage; import org.gjt.sp.jedit.EditBus; import org.gjt.sp.jedit.View; import org.gjt.sp.jedit.gui.DefaultFocusComponent; import org.gjt.sp.jedit.gui.DockableWindowManager; import org.gjt.sp.jedit.msg.PropertiesChanged; import com.applang.components.NotePicker; import com.applang.components.TextToggle; import static com.applang.SwingUtil.*; public class NoteDockable extends JPanel implements EBComponent, DefaultFocusComponent { private boolean floating; private TextToggle textToggle; private NotePicker notePicker; public NoteDockable(View view, String position) { super(new BorderLayout()); this.floating = position.equals(DockableWindowManager.FLOATING); if (floating) this.setPreferredSize(new Dimension(500, 250)); southStatusBar(this); textToggle = new TextToggle(); textToggle.getTextEdit().installSpellChecker(); add(textToggle.getUIComponent(), BorderLayout.CENTER); notePicker = new NotePicker(BerichtsheftPlugin.getDataView(), textToggle, view); add(notePicker, BorderLayout.NORTH); } @Override public void focusOnDefaultComponent() { textToggle.requestFocus(); } @Override public void addNotify() { super.addNotify(); EditBus.addToBus(this); notePicker.start(); } @Override public void removeNotify() { super.removeNotify(); EditBus.removeFromBus(this); notePicker.finish(); } @Override public void handleMessage(EBMessage message) { if (message instanceof PropertiesChanged) { propertiesChanged(); } } void propertiesChanged() { notePicker.refresh(); } }