class ButtonOnToolbar extends JButton implements ActionListener {

   String buttonText;
   String buttonHint;
   String iconFile;

   public ButtonOnToolbar(){
      setBorderPainted(false);
      putClientProperty("JButton.buttonType", "textured");
      setUI(new UnifiedToolbarButtonUI());
      setBorder(BorderFactory.createEmptyBorder(3,10,3,10));
   }

   void init() {<FILL_FUNCTION_BODY>}

   boolean shouldRun() {
      return true;
   }

   void runAction(ActionEvent e) {
   }

   @Override
   public void actionPerformed(ActionEvent e) {
      runAction(e);
   }
}

      URL imageURL = SikulixIDE.class.getResource(iconFile);
      setIcon(new ImageIcon(imageURL));
      setText(buttonText);
      setToolTipText(buttonHint);
      addActionListener(this);
   
<methods>public void <init>() ,public void <init>(javax.swing.Icon) ,public void <init>(java.lang.String) ,public void <init>(javax.swing.Action) ,public void <init>(java.lang.String, javax.swing.Icon) ,public javax.accessibility.AccessibleContext getAccessibleContext() ,public java.lang.String getUIClassID() ,public boolean isDefaultButton() ,public boolean isDefaultCapable() ,public void removeNotify() ,public void setDefaultCapable(boolean) ,public void updateUI() <variables>private static final java.lang.String uiClassID