package org.wiztools.restclient.ui;
import java.awt.Component;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
import java.net.URL;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import org.wiztools.filechooser.FileChooser;
import org.wiztools.filechooser.JFCFileChooser;
/**
*
* @author Subhash
*/
public final class UIUtil {
private UIUtil(){}
public static final Font FONT_DIALOG_PLAIN = new Font(Font.DIALOG, Font.PLAIN,
RCUIConstants.getUIFontSizeDefault());
public static final Font FONT_DIALOG_BOLD = new Font(Font.DIALOG, Font.BOLD,
RCUIConstants.getUIFontSizeDefault());
public static final Font FONT_MONO_PLAIN = new Font(Font.MONOSPACED, Font.PLAIN,
RCUIConstants.getUIFontSizeDefault());
public static final Font FONT_BIG = new Font(Font.DIALOG, Font.PLAIN, 18);
public static final String LAST_CWD_REQ = "filesystem.lastdir.request";
public static final String LAST_CWD_RES = "filesystem.lastdir.response";
public static final String LAST_CWD_ARC = "filesystem.lastdir.archive";
public static final String LAST_CWD_HIS = "filesystem.lastdir.history";
private static final RCFileView fileView = new RCFileView();
public static final FileChooser getNewFileChooser(){
JFCFileChooser jfc = new JFCFileChooser();
jfc.setFileView(fileView);
return jfc;
// return new FDFileChooser();
}
public static ImageIcon getIconFromClasspath(String path){
URL url = UIUtil.class.getClassLoader().getResource(path);
return new ImageIcon(url);
}
public static JPanel getFlowLayoutLeftAlignedMulti(Component ... components) {
JPanel jp = new JPanel();
jp.setLayout(new FlowLayout(FlowLayout.LEFT));
for(Component c: components) {
jp.add(c);
}
return jp;
}
public static JPanel getFlowLayoutPanelLeftAligned(Component component){
return getFlowLayoutPanelLeftAligned(null, component);
}
public static JPanel getFlowLayoutPanelLeftAligned(String title, Component component){
JPanel jp = new JPanel();
jp.setLayout(new FlowLayout(FlowLayout.LEFT));
if(title != null){
if(component instanceof JPanel){
JPanel p = (JPanel)component;
p.setBorder(BorderFactory.createTitledBorder(title));
}
}
jp.add(component);
return jp;
}
public static Component getJScrollPaneWrapped(Component component) {
return new JScrollPane(component);
}
public static void clipboardCopy(String str) {
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(new StringSelection(str), null);
}
public static boolean hasRetinaDisplay() {
Object obj = Toolkit.getDefaultToolkit()
.getDesktopProperty("apple.awt.contentScaleFactor");
if (obj instanceof Float) {
Float f = (Float) obj;
int scale = f.intValue();
return (scale == 2);
}
return false;
}
}