package com.robonobo.gui.platform;
import java.awt.Event;
import java.awt.datatransfer.*;
import java.io.File;
import java.io.IOException;
import java.util.List;
import javax.swing.*;
import javax.swing.filechooser.FileSystemView;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.robonobo.common.exceptions.SeekInnerCalmException;
import com.robonobo.core.Platform;
import com.robonobo.core.api.Robonobo;
import com.robonobo.core.itunes.ITunesService;
import com.robonobo.gui.components.MenuBar;
import com.robonobo.gui.frames.RobonoboFrame;
import com.robonobo.gui.laf.RobonoboLookAndFeel;
public class UnknownPlatform extends Platform {
Log log;
protected RobonoboFrame rFrame;
@Override
public void init() {
// TODO Auto-generated method stub
}
@Override
public void initRobonobo(Robonobo ro) {
log = LogFactory.getLog(getClass());
}
@Override
public JMenuBar getMenuBar(JFrame frame) {
return new MenuBar((RobonoboFrame) frame);
}
@Override
public void initMainWindow(JFrame frame) throws Exception {
rFrame = (RobonoboFrame) frame;
// TODO Auto-generated method stub
}
@Override
public void setLookAndFeel() {
try {
UIManager.setLookAndFeel(new RobonoboLookAndFeel());
} catch (UnsupportedLookAndFeelException e) {
throw new SeekInnerCalmException(e);
}
}
@Override
public boolean frameContainsMenuBar() {
return true;
}
@Override
public boolean shouldSetMenuBarOnDialogs() {
return false;
}
@Override
public File getDefaultHomeDirectory() {
return new File(FileSystemView.getFileSystemView().getDefaultDirectory(), ".robonobo");
}
@Override
public File getDefaultDownloadDirectory() {
String s = File.separator;
return new File(FileSystemView.getFileSystemView().getDefaultDirectory()+s+"Music"+s+"robonobo");
}
@Override
public boolean shouldShowPrefsInFileMenu() {
return true;
}
@Override
public boolean shouldShowQuitInFileMenu() {
return true;
}
@Override
public boolean shouldShowOptionsMenu() {
return true;
}
@Override
public boolean shouldShowAboutInHelpMenu() {
return true;
}
@Override
public int getNumberOfShakesForShakeyWindow() {
return 10;
}
@Override
public boolean canDnDImport(DataFlavor[] transferFlavors) {
try {
DataFlavor flava = new DataFlavor("application/x-java-file-list; class=java.util.List");
for (DataFlavor dataFlavor : transferFlavors) {
if(flava.equals(dataFlavor))
return true;
}
return false;
} catch (ClassNotFoundException e) {
throw new SeekInnerCalmException();
}
}
@Override
public List<File> getDnDImportFiles(Transferable t) throws IOException {
try {
DataFlavor flava = new DataFlavor("application/x-java-file-list; class=java.util.List");
List result = (List) t.getTransferData(flava);
return result;
} catch (ClassNotFoundException e) {
throw new SeekInnerCalmException();
} catch (UnsupportedFlavorException e) {
log.error("Error getting DnD files", e);
return null;
}
}
@Override
public KeyStroke getAccelKeystroke(int key) {
return KeyStroke.getKeyStroke(key, Event.CTRL_MASK);
}
@Override
public int getCommandModifierMask() {
return Event.CTRL_MASK;
}
@Override
public boolean iTunesAvailable() {
return false;
}
@Override
public ITunesService getITunesService() {
return null;
}
@Override
public void customizeMainbarButtons(List<? extends JButton> btns) {
// Do nothing
}
@Override
public void customizeSearchTextField(JTextField field) {
// Do nothing
}
@Override
public String fileManagerName() {
return null;
}
@Override
public void showFileInFileManager(File file) {
// Do nothing
}
}