Author: jerome
Date: 2008-08-26 13:24:39 +0200 (Tue, 26 Aug 2008)
New Revision: 1594
Added:
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/Compressor.java
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/images/attitunes/alert-attitune.png
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/images/attitunes/message-attitune.png
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/images/attitunes/other-attitune.png
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/images/attitunes/system-attitune.png
Removed:
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/images/Object/WebBrowser/
Modified:
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/CcInterface.java
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Object/PseudoFileBrowser/FileBrowser.java
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Object/View/TuxAttitunesListView.java
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Object/View/TuxAttitunesThumbnailView.java
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Object/WebBrowser/webBrowser.java
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/GadgetAlertPanel.java
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/TgfGenerator.java
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/TuxLanguagesMenu.java
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/images/attitunes/education-attitune.png
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/images/attitunes/fun-attitune.png
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/images/attitunes/kids-attitune.png
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/images/attitunes/music-attitune.png
Log:
* Updated icon categories.
* Added categories + default.
* Fixed webbrowser urls.
Modified:
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/CcInterface.java
===================================================================
---
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/CcInterface.java
2008-08-26 11:06:36 UTC (rev 1593)
+++
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/CcInterface.java
2008-08-26 11:24:39 UTC (rev 1594)
@@ -406,11 +406,10 @@
public void onRadioConnected(String value, Double delay){
setOnlineStatus(true);
tray.setIcon(this.tray_online);
- if(this.interfaceMenusLang.areLocutorsInitialized()){
- this.interfaceMenusLang.setTux(tux);
- this.initializeLocutors();
- this.interfaceMenusLang.setLocutorsInitialized(true);
- }
+ this.interfaceMenusLang.setTux(tux);
+ this.initializeLocutors();
+ this.interfaceMenusLang.setLocutorsInitialized(true);
+ jFrame.pack();
}
/**
@@ -826,9 +825,9 @@
}
});
- if(this.interfaceMenusLang.haveLocutor()){
- popupFileMenu.add(pitch);
- }
+
+ popupFileMenu.add(pitch);
+
popupFileMenu.addSeparator();
//Add exit menu item that allow to exit application.
exit = new JMenuItem(language.getMenuFileExit());
@@ -960,15 +959,15 @@
public void initializeLocutors(){
- if(this.interfaceMenusLang.haveLocutor()){
- //Set speaker selection menu.
- JMenu speaker = new
JMenu(language.getMenuViewSpeaker());
-
- for(JMenuItem items :
this.interfaceMenusLang.getTuxLocutorsMenus()){
- speaker.add(items);
- }
- popupFileMenu.add(speaker);
+
+ //Set speaker selection menu.
+ JMenu speaker = new JMenu(language.getMenuViewSpeaker());
+
+ for(JMenuItem items :
this.interfaceMenusLang.getTuxLocutorsMenus()){
+ speaker.add(items);
}
+ popupFileMenu.add(speaker);
+
}
/**
@@ -1435,7 +1434,7 @@
}
-
+ //FIXME
public void showAttituneLatestProperties(){
if(view == CcInterface.VIEW_LIST){
if(file_browser.getAttitunesViewSelectedIndex() != -1){
@@ -2021,7 +2020,6 @@
TuxDegradeePanelWithInset panel =
(TuxDegradeePanelWithInset)arg0.getNewValue();
this.maskAllTabs();
this.jTabbedPane.addTab(language.getPanelSummary(),
panel);
- this.savedProperties.put("attitune", new
JPanel[]{panel});
if(this.view == CcInterface.VIEW_LIST){
this.savedProperties.put("attitune", new
JPanel[]{panel});
@@ -2182,7 +2180,7 @@
//Getting simple schedul
settings values and register into settings file.
String type =
panel.getSchedulType();
Object[] config = new Object[6];
- if(type.equals("every")){
+ if(type.equals("every") ||
(type.equals("disable"))){
int everyValue =
panel.getEveryValue();
config[0] = type;
config[1] = "00";
@@ -2194,7 +2192,8 @@
try {
settings.registerAlertConfiguration(config,
alertPlaylist.getSelectedAlertIndex());
- new
TaskDefiner(true, everyValue, uid.toString(), dispatcher);
+
if(!type.equals("disable"))
+ new
TaskDefiner(true, everyValue, uid.toString(), dispatcher);
} catch (Exception e)
{e.printStackTrace();}
}
else if(type.equals("fixed")){
@@ -2226,7 +2225,7 @@
test.setIcon(icon);
}
- public void
mouseClicked(java.awt.event.MouseEvent event){
+ public void
mousePressed(java.awt.event.MouseEvent event){
if(tux.dongle.getConnected() &&
flagPlay){
flagPlay = !flagPlay;
@@ -2253,7 +2252,7 @@
jFrame.repaint();
jFrame.pack();
}
- else if(kind.equalsIgnoreCase("gadget")){
+ else if(kind.equalsIgnoreCase("gadget")){ //FIXME
this.maskAllTabs();
//Time config panel.
final SimpleAlertSettings alertSimpleSetting =
new SimpleAlertSettings(language);
@@ -2312,7 +2311,7 @@
//Getting simple schedul
settings values and register into settings file.
String type =
alertSimpleSetting.getSchedulType();
Object[] config = new Object[6];
- if(type.equals("every")){
+ if(type.equals("every") ||
type.equals("disable")){
int everyValue =
alertSimpleSetting.getEveryValue();
config[0] = type;
config[1] = "00";
@@ -2324,7 +2323,7 @@
}
else
if(gadgetPanel.getType() == 2){
config[3] =
"gadget";
- config[4] =
alertPlaylist.getPath();
+ config[4] =
alertPlaylist.getPath();
}
else
if(gadgetPanel.getType() == 1){
config[3] =
"tts";
@@ -2335,9 +2334,11 @@
config[5] = uid;
try {
+
settings.registerAlertConfiguration(config,
alertPlaylist.getSelectedAlertIndex());
settings.registerGadgetParameter(uid.toString(), parameters.getValues(), gdg);
- new
TaskDefiner(true, everyValue, uid.toString(), dispatcher);
+
if(!type.equals("disable")) //then start scheduler task.
+ new
TaskDefiner(true, everyValue, uid.toString(), dispatcher);
} catch (Exception e)
{e.printStackTrace();}
}
@@ -2380,18 +2381,18 @@
.getResource("images/buttons/btn-test-down.png"));
boolean Flag = true;
- public void
mouseClicked(java.awt.event.MouseEvent event){
+ public void
mousePressed(java.awt.event.MouseEvent event){
int type =
gadgetPanel.getType();
if(type != -1){
switch(type){
case 0 : //Attitune
alarm type.
-
if(Flag &&
tux.radio.getConnected()){
Flag =
!Flag;
test.setIcon(iconPressed);
file_browser.playAttituneFromPath(gadgetPanel.getAttitune());
+
test.setIcon(icon);
}
else if(!Flag){
Flag =
!Flag;
@@ -2408,22 +2409,12 @@
break;
case 1 : //tts alarm
type.
- if(Flag &&
tux.radio.getConnected()){
+
Flag =
!Flag;
String
tts = gadgetPanel.getTTSMessage();
tux.tts.speak(tts);
- }
- else if(!Flag){
- Flag =
!Flag;
-
tux.tts.stop();
- }
- else{
- String
paneTitle = language.messages.getMessageBoxTitle();
- String
message = language.messages.getRadioErrorMessage();
-
JOptionPane.showMessageDialog(jContentPane, message,
-
paneTitle, JOptionPane.ERROR_MESSAGE);
- }
- break;
+
+ break;
case 2 : //run gadget
alarm type.
Modified:
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Object/PseudoFileBrowser/FileBrowser.java
===================================================================
---
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Object/PseudoFileBrowser/FileBrowser.java
2008-08-26 11:06:36 UTC (rev 1593)
+++
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Object/PseudoFileBrowser/FileBrowser.java
2008-08-26 11:24:39 UTC (rev 1594)
@@ -781,7 +781,7 @@
public ArrayList<Object> getAttitunesList(){
ArrayList<Object> liste = new ArrayList<Object>();
for(Object[] objet : this.AttitunesDatas){
- liste.add(new Object[]{objet[0], objet[4]});
+ liste.add(new Object[]{objet[0], objet[5]});
}
return liste;
Modified:
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Object/View/TuxAttitunesListView.java
===================================================================
---
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Object/View/TuxAttitunesListView.java
2008-08-26 11:06:36 UTC (rev 1593)
+++
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Object/View/TuxAttitunesListView.java
2008-08-26 11:24:39 UTC (rev 1594)
@@ -138,7 +138,7 @@
DefaultTableModel model = new AttitunesModel(values,
headers);
FiltreTriModel sorter = new FiltreTriModel(model);
this.sorter = sorter;
- jTable = new JTable(model);
+ jTable = new JTable(sorter);
sorter.addEcouteur(jTable);
try {
@@ -368,8 +368,17 @@
else if(values[index][1].toString().equalsIgnoreCase("music")){
return
CcInterface.class.getResource("images/attitunes/music-attitune.png");
}
+ else if(values[index][1].toString().equalsIgnoreCase("alert")){
+ return
CcInterface.class.getResource("images/attitunes/alert-attitune.png");
+ }
+ else if(values[index][1].toString().equalsIgnoreCase("system")){
+ return
CcInterface.class.getResource("images/attitunes/system-attitune.png");
+ }
+ else
if(values[index][1].toString().equalsIgnoreCase("message")){
+ return
CcInterface.class.getResource("images/attitunes/message-attitune.png");
+ }
- return getClass().getResource("images/att.png");
+ return
CcInterface.class.getResource("images/attitunes/other-attitune.png");
}
public Object[] getDatasAtSelectedIndex(){
Modified:
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Object/View/TuxAttitunesThumbnailView.java
===================================================================
---
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Object/View/TuxAttitunesThumbnailView.java
2008-08-26 11:06:36 UTC (rev 1593)
+++
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Object/View/TuxAttitunesThumbnailView.java
2008-08-26 11:24:39 UTC (rev 1594)
@@ -93,8 +93,17 @@
else
if(modele.values[index][1].toString().equalsIgnoreCase("music")){
return
CcInterface.class.getResource("images/attitunes/music-attitune.png");
}
+ else
if(modele.values[index][1].toString().equalsIgnoreCase("alert")){
+ return
CcInterface.class.getResource("images/attitunes/alert-attitune.png");
+ }
+ else
if(modele.values[index][1].toString().equalsIgnoreCase("system")){
+ return
CcInterface.class.getResource("images/attitunes/system-attitune.png");
+ }
+ else
if(modele.values[index][1].toString().equalsIgnoreCase("message")){
+ return
CcInterface.class.getResource("images/attitunes/message-attitune.png");
+ }
- return getClass().getResource("images/att.png");
+ return
CcInterface.class.getResource("images/attitunes/other-attitune.png");
}
Modified:
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Object/WebBrowser/webBrowser.java
===================================================================
---
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Object/WebBrowser/webBrowser.java
2008-08-26 11:06:36 UTC (rev 1593)
+++
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Object/WebBrowser/webBrowser.java
2008-08-26 11:24:39 UTC (rev 1594)
@@ -77,12 +77,14 @@
public void setGadgetsUrl(){
- this.browser.GoTo(new
String("http://www.tuxisalive.com/downloads"));
+ this.browser.GoTo(new
String("http://www.livewithapenguin.com/Gadgets.htm"));
}
public void setAttitunesUrl(){
- this.browser.GoTo(new
String("http://www.tuxisalive.com/downloads/attitunes"));
+ //"http://www.tuxisalive.com/downloads/attitunes"
+ //"http://www.livewithapenguin.com/Attitunes.htm"
+ this.browser.GoTo(new
String("http://livewithapenguin.com/attitunes/Attitunes.htm"));
}
}
Added:
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/Compressor.java
===================================================================
---
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/Compressor.java
(rev 0)
+++
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/Compressor.java
2008-08-26 11:24:39 UTC (rev 1594)
@@ -0,0 +1,183 @@
+package com.tuxdroid.cc.Utils;
+
+import java.io.*;
+import java.util.zip.*;
+
+public class Compressor
+{
+ private static ZipOutputStream zos;
+
+ private static String goodSepSlash = "";
+ private static String badSepSlash = "";
+
+ public Compressor() {
+ if (File.separator == "/")
+ {
+ goodSepSlash = "/";
+ badSepSlash = "\\";
+ }
+ else
+ {
+ goodSepSlash = "\\";
+ badSepSlash = "/";
+ }
+ }
+
+ /**
+ *
+ * @param sourcePath
+ * @return
+ */
+ public static boolean compressAttitune(String attFilePath, String
sourcePath)
+ {
+ File file = new File(sourcePath);
+
+ try
+ {
+ zos = new ZipOutputStream(new FileOutputStream(new
File(attFilePath)));
+ recurseFiles(file, sourcePath);
+ zos.close();
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ *
+ * @param attFilePath
+ * @param tmpAttDir
+ * @return
+ */
+ public static boolean uncompressAttitune(String attFilePath, String
destinationPath)
+ {
+ FileOutputStream fos = null;
+ BufferedOutputStream dest = null;
+ FileInputStream fis;
+ ZipInputStream zis;
+ ZipEntry entry;
+ int count;
+ byte data[] = new byte[8192];
+
+ try
+ {
+ fis = new FileInputStream(attFilePath);
+ zis = new ZipInputStream(new BufferedInputStream(fis));
+
+ while ((entry = zis.getNextEntry()) != null)
+ {
+ if (!entry.isDirectory())
+ {
+ if (!prepareFileDirectories(destinationPath,
entry.getName()))
+ {
+ return false;
+ }
+ String destFileName = destinationPath +
File.separator + entry.getName();
+ System.out.println(destFileName);
+ try
+ {
+ fos = new
FileOutputStream(destFileName);
+ }
+ catch (Exception e)
+ {
+ return false;
+ }
+ dest = new BufferedOutputStream(fos, 8192);
+ while((count = zis.read(data, 0, 8192)) != -1)
+ {
+ dest.write(data, 0, count);
+ }
+ dest.flush();
+ dest.close();
+ }
+ }
+ zis.close();
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ return false;
+ }
+
+ return true;
+ }
+
+ /*
+ *
+ */
+ private static void recurseFiles(File file, String basePath)
+ throws IOException, FileNotFoundException
+ {
+ String filePath;
+
+ if (file.isDirectory())
+ {
+ String[] fileNames = file.list();
+ if (fileNames != null)
+ {
+ for (int i=0; i<fileNames.length; i++)
+ {
+ recurseFiles(new File(file, fileNames[i]), basePath);
+ }
+ }
+ }
+ else
+ {
+ byte[] buf = new byte[1024];
+ int len;
+
+ filePath = file.toString().substring(0, basePath.length()+1);
+ System.out.println(file.toString());
+ ZipEntry zipEntry = new
ZipEntry(file.toString().replace(filePath, ""));
+
+ FileInputStream fin = new FileInputStream(file);
+ BufferedInputStream in = new BufferedInputStream(fin);
+ zos.putNextEntry(zipEntry);
+
+ while ((len = in.read(buf)) >= 0)
+ {
+ zos.write(buf, 0, len);
+ }
+
+ in.close();
+ zos.closeEntry();
+ }
+ }
+
+ /*
+ *
+ */
+ private static boolean prepareFileDirectories(String destination,
String entryName)
+ {
+ String outputFileName = destination + entryName;
+ try
+ {
+ new File(outputFileName.substring(0,
outputFileName.lastIndexOf("/"))).mkdirs();
+ }
+ catch (Exception e)
+ {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ *
+ * @param path
+ * @return
+ */
+ public static String regularizePath(String path)
+ {
+ String result = path;
+
+ result = result.replace("\\\\", "&&&&");
+ result = result.replace("//", "&&&&");
+ result = result.replace(badSepSlash, "&&&&");
+ result = result.replace("&&&&", goodSepSlash);
+
+ return result;
+ }
+}
Modified:
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/GadgetAlertPanel.java
===================================================================
---
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/GadgetAlertPanel.java
2008-08-26 11:06:36 UTC (rev 1593)
+++
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/GadgetAlertPanel.java
2008-08-26 11:24:39 UTC (rev 1594)
@@ -168,7 +168,8 @@
return this.TTSMessage.getText();
}
- public String getAttitune(){
+ public String getAttitune(){
+
int index = this.AttituneSelection.getSelectedIndex();
if(index != -1){
Object[] re = (Object[]) this.values.get(index);
Modified:
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/TgfGenerator.java
===================================================================
---
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/TgfGenerator.java
2008-08-26 11:06:36 UTC (rev 1593)
+++
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/TgfGenerator.java
2008-08-26 11:24:39 UTC (rev 1594)
@@ -25,6 +25,7 @@
import java.io.File;
import java.io.IOException;
+import javax.print.attribute.standard.Compression;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
@@ -53,6 +54,7 @@
private File temporaryFile;
private File file;
private File gadgetXML;
+ private File finalFile;
//parameters.
private GadgetInstanceParameters parameters;
@@ -81,12 +83,12 @@
public File createTempDirectory(){
File f = new File(System.getProperty("user.home"));
- File generator = new File(f.getAbsolutePath() + File.separator
+ "TgfGenerator");
- File temp = new File(generator.getAbsolutePath() +
File.separator + this.name);
+ File generator = new File(f.getPath() + File.separator +
"TgfGenerator");
+ File temp = new File(generator.getPath()+ File.separator +
(this.name).replace(" ", "_"));
temp.mkdirs();
try {
FileUtils.copyDirectory(new File(this.path), temp);
- gadgetXML = new File(temp.getAbsolutePath() +
File.separator + "gadgets.xml");
+ gadgetXML = new File(temp.getPath() + File.separator +
"gadgets.xml");
} catch (IOException e) {
e.printStackTrace();
}
@@ -132,17 +134,24 @@
}
public void packageGadget(){
- File test = new File(this.file.getAbsolutePath());
- ZIP zip = new ZIP(test, new
File((this.temporaryFile.getAbsolutePath() + ".tgf").replace(" ", "-")));
- try {
- zip.compress(5);
- } catch (Exception e) {
- e.printStackTrace();
- }
+ String from = this.file.getPath();
+ String to = (this.temporaryFile.getPath() +
".tgf").replace("(","_").replace(")", "_");
+
+
+ new Compressor();
+ Compressor.compressAttitune(to, from);
}
public void export(){
-
+ File f = new File(System.getProperty("user.home"));
+ f = new File(f.getAbsolutePath() + File.separator +
"MyTuxGadgets"
+ + File.separator +
(this.temporaryFile.getName()
+ + ".tgf").replace(" ", "-"));
+ /*try {
+ FileUtils.copy(this.finalFile, f);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }*/
}
private void registerChanges(Document document){
Modified:
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/TuxLanguagesMenu.java
===================================================================
---
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/TuxLanguagesMenu.java
2008-08-26 11:06:36 UTC (rev 1593)
+++
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/TuxLanguagesMenu.java
2008-08-26 11:24:39 UTC (rev 1594)
@@ -25,6 +25,7 @@
import java.io.File;
import java.net.URISyntaxException;
import java.net.URL;
+import java.util.Hashtable;
import java.util.Vector;
import javax.swing.ImageIcon;
@@ -39,7 +40,6 @@
private TuxAPI tux;
private Settings settings;
private Languages language;
-
private File[] languages;
//Menus
@@ -53,16 +53,37 @@
static final URL icon =
com.tuxdroid.cc.CcInterface.class.getResource("images/arrow_lang.png");
private boolean initialized = false;
+ private Hashtable<String, Hashtable<String, String>> locutors = new
Hashtable<String, Hashtable<String, String>>();
+ private String currentLocutor;
+
//constructor.
public TuxLanguagesMenu(TuxAPI tux, Settings settings, Languages
language){
+ //Prepare Hashtable;
this.tux = tux;
this.settings = settings;
this.language = language;
+ this.prepareLocutors();
this.getAvailablesLang();
this.getInterfaceMenu();
this.getLocutorsMenus();
}
+ protected void prepareLocutors(){
+ Hashtable<String, String> en = new Hashtable<String, String>();
+ Hashtable<String, String> fr = new Hashtable<String, String>();
+ Hashtable<String, String> nl = new Hashtable<String, String>();
+ en.put("male", "Ryan");
+ en.put("female", "Heather");
+ fr.put("male", "Bruno");
+ fr.put("female", "Julie");
+ nl.put("male", "Sofie");
+ nl.put("female", "Sofie");
+
+ locutors.put("en", en);
+ locutors.put("fr", fr);
+ locutors.put("nl", nl);
+ }
+
/** Gets languages **/
private void getAvailablesLang(){
@@ -90,11 +111,10 @@
/** get availables languages menus. **/
private boolean getLocutorsMenus(){
if(tux.tts.getVoices().size() <= 0) return false;
-
- String currentSpeaker = settings.getSpeaker();
+
for(String menuName : tux.tts.getVoices()){
JMenuItem menu = new JMenuItem(menuName);
- if(menuName.equalsIgnoreCase(currentSpeaker)){
+ if(menuName.equalsIgnoreCase(settings.getSpeaker())){
//the set the 'slected' icon.
menu.setIcon(new
ImageIcon(TuxLanguagesMenu.icon));
}
@@ -102,8 +122,8 @@
public void
mousePressed(java.awt.event.MouseEvent event){
removeMenuIcons(locutorsMenus);
((JMenuItem)
event.getComponent()).setIcon(new ImageIcon(TuxLanguagesMenu.icon));
-
settings.saveSpeaker(((JMenuItem)event.getComponent()).getText());
tux.tts.setLocutor(((JMenuItem)event.getComponent()).getText());
+ currentLocutor =
((JMenuItem)event.getComponent()).getText();
}
});
this.locutorsMenus.add(menu);
@@ -131,9 +151,27 @@
//Register new language.
String lang =
((JMenuItem)event.getComponent()).getText();
String country = lang.toUpperCase();
- if(lang.equalsIgnoreCase("en")) country
= "US";
+ if(lang.equalsIgnoreCase("en")){
+ country = "US";
+
if(!isValidLocutor(currentLocutor, lang))
+
settings.saveSpeaker(locutors.get("en").get("male"));
+ else
+
settings.saveSpeaker(currentLocutor);
+ }
+ else if(lang.equalsIgnoreCase("fr")){
+
if(!isValidLocutor(currentLocutor, lang))
+
settings.saveSpeaker(locutors.get("fr").get("male"));
+ else
+
settings.saveSpeaker(currentLocutor);
+ }
+ else if(lang.equalsIgnoreCase("nl")){
+
if(!isValidLocutor(currentLocutor, lang))
+
settings.saveSpeaker(locutors.get("nl").get("male"));
+ else
+
settings.saveSpeaker(currentLocutor);
+ }
settings.saveLocale(lang, country);
- settings.saveSpeaker("Ryan");
+
String msg =
language.messages.getChangedLangageMessage();
String titleBox =
language.messages.getMessageBoxTitle();
JOptionPane.showMessageDialog(null,
msg, titleBox,
@@ -147,6 +185,35 @@
}
+ private boolean isValidLocutor(String locutor, String language){
+ String male;
+ String female;
+ if(language.equalsIgnoreCase("en")){
+ male = locutors.get("en").get("male");
+ female = locutors.get("en").get("female");
+
+ }
+ else if(language.equalsIgnoreCase("fr")){
+ male = locutors.get("fr").get("male");
+ female = locutors.get("fr").get("female");
+ }
+ else if(language.equalsIgnoreCase("nl")){
+ male = locutors.get("nl").get("male");
+ female = locutors.get("nl").get("female");
+ }
+ else{
+ male = locutors.get("en").get("male");
+ female = locutors.get("en").get("female");
+ }
+
+ if(!(locutor.equalsIgnoreCase(male)) ||
(locutor.equalsIgnoreCase(female))){
+ return false;
+ }
+
+ return true;
+ }
+
+
private void removeMenuIcons(Vector<JMenuItem> items){
for(JMenuItem item : items) item.setIcon(null);
}
@@ -161,10 +228,6 @@
return this.interfaceLanguages.size() > 0;
}
- public boolean haveLocutor(){
- return tux.tts.getVoices().size() > 0;
- }
-
public Vector<JMenuItem> getInterfaceLanguagesMenus(){
return this.interfaceLangMenus;
}
Added:
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/images/attitunes/alert-attitune.png
===================================================================
(Binary files differ)
Property changes on:
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/images/attitunes/alert-attitune.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified:
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/images/attitunes/education-attitune.png
===================================================================
(Binary files differ)
Modified:
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/images/attitunes/fun-attitune.png
===================================================================
(Binary files differ)
Modified:
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/images/attitunes/kids-attitune.png
===================================================================
(Binary files differ)
Added:
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/images/attitunes/message-attitune.png
===================================================================
(Binary files differ)
Property changes on:
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/images/attitunes/message-attitune.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified:
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/images/attitunes/music-attitune.png
===================================================================
(Binary files differ)
Added:
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/images/attitunes/other-attitune.png
===================================================================
(Binary files differ)
Property changes on:
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/images/attitunes/other-attitune.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/images/attitunes/system-attitune.png
===================================================================
(Binary files differ)
Property changes on:
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/images/attitunes/system-attitune.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Tux-droid-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tux-droid-svn