/*
* Relaunch64 - A Java Crossassembler for C64 machine language coding.
* Copyright (C) 2001-2013 by Daniel Lüdecke (http://www.danielluedecke.de)
*
* Homepage: http://www.popelganda.de
*
*
* This program is free software; you can redistribute it and/or modify it under the terms of the
* GNU General Public License as published by the Free Software Foundation; either version 3 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with this program;
* if not, see <http://www.gnu.org/licenses/>.
*
*
* Dieses Programm ist freie Software. Sie können es unter den Bedingungen der GNU
* General Public License, wie von der Free Software Foundation veröffentlicht, weitergeben
* und/oder modifizieren, entweder gemäß Version 3 der Lizenz oder (wenn Sie möchten)
* jeder späteren Version.
*
* Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, daß es Ihnen von Nutzen sein
* wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite Garantie der MARKTREIFE oder
* der VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK. Details finden Sie in der
* GNU General Public License.
*
* Sie sollten ein Exemplar der GNU General Public License zusammen mit diesem Programm
* erhalten haben. Falls nicht, siehe <http://www.gnu.org/licenses/>.
*/
package de.danielluedecke.zettelkasten.mac;
import de.danielluedecke.zettelkasten.database.Settings;
import de.danielluedecke.zettelkasten.util.ColorUtil;
import java.awt.Color;
import java.awt.Font;
import javax.swing.BorderFactory;
import javax.swing.JSplitPane;
import javax.swing.JTextField;
import javax.swing.border.TitledBorder;
import javax.swing.plaf.basic.BasicSplitPaneUI;
/**
*
* @author Daniel Luedecke
*/
public class ZknMacWidgetFactory {
public static void updateSplitPane(JSplitPane splitPane, Color dividerColor) {
splitPane.setContinuousLayout(true);
switch (splitPane.getOrientation()) {
case JSplitPane.HORIZONTAL_SPLIT:
splitPane.setDividerSize(1);
((BasicSplitPaneUI) splitPane.getUI()).getDivider().setBorder(BorderFactory.createMatteBorder(0, 1, 0, 0, dividerColor));
break;
case JSplitPane.VERTICAL_SPLIT:
splitPane.setDividerSize(6);
((BasicSplitPaneUI) splitPane.getUI()).getDivider().setBorder(BorderFactory.createMatteBorder(1, 0, 1, 0, dividerColor));
break;
}
splitPane.setBorder(BorderFactory.createEmptyBorder());
}
public static void updateSplitPane(JSplitPane splitPane) {
updateSplitPane(splitPane, new Color(0xa5a5a5));
}
public static TitledBorder getTitledBorder(String title, Color titlecolor, Settings settings) {
TitledBorder b;
if (settings.isMacAqua() || settings.isSeaGlass()) {
b = new TitledBorder(BorderFactory.createEmptyBorder(3,3,3,3), title, TitledBorder.LEFT, TitledBorder.BELOW_TOP);
Font f = b.getTitleFont();
// for sea glass, this will return null, so get different font setting
if (null==f) {
f = settings.getTableFont();
}
if (f!=null) {
b.setTitleFont(f.deriveFont(Font.BOLD));
}
// check whether title color is used
if (titlecolor!=null) {
b.setTitleColor(titlecolor);
}
}
else {
b = javax.swing.BorderFactory.createTitledBorder(null, title);
}
return b;
}
public static TitledBorder getTitledBorder(String title, Settings settings) {
return getTitledBorder(title, null, settings);
}
public static void setTextFieldBorder(JTextField textComponent) {
if (textComponent.isFocusOwner()) {
textComponent.setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createLineBorder(ColorUtil.colorJTreeText),
BorderFactory.createEmptyBorder(1, 2, 1, 2)));
}
else {
textComponent.setBorder(null);
}
}
public static JTextField createHudTreeTextField(String text) {
JTextField textField = new JTextField(text);
textField.setUI(new HudTreeTextFieldUI());
return textField;
}
}