mag 16 2009

[BUC - Scripting] Realizzare una combobox dinamica

Il SiciLinuX è momentaneamente in ferie fino a data da destinarsi; se non vi rispondo sapete il perchè :)

Pubblicato da smat alle 09:31 in BUC, Linux & OpenSource, guide, scripting

buc-scripting

Grazie al tag < combobox > è possibile inserire in un proprio applicativo mc una lista di selezione, tramite la quale si da la possibilità all’utente di definire una variabile scegliendo il valore fra varie voci.

combobox.png

E’ utile a volte rendere questa lista dinamica e modificabile in base alle scelte dell’utente.

Il metodo che ho utilizzato io per far ciò è molto semplice:

<tab>
  <title>echo "Aggiungi valore alla combobox"</title>
	<label>
		echo "Inserisci il nome del file"
	</label>

		<text var="nome">
			echo ""
		</text>

	<label>
		echo "Inserisci la stringa all'interno del file"
	</label>
		<text var="stringa">
			echo ""
		</text>

	<button title="Salva">
		if [ -s $HOME/cartella/ ]
			then
			cd $HOME/cartella/
			touch $nome
			echo "$stringa" > $HOME/cartella/$nome
				else
				mkdir $HOME/cartella/
				cd $HOME/cartella/
				touch $nome
				echo "$stringa" > $HOME/cartella/$nome
		fi

	if [ -e $HOME/cartella/$nome ]
	then
	zenity --info --title=buc --text="Operazione completata.
Per visualizzare le modifiche riavvia l'applicativo"
	else
	zenity --error --title=buc --text="Errore"
	fi
	</button>
</tab>

Questo codice non fa altro che creare un file di testo, il cui nome dipende dal valore che l’utente darà alla variabile $nome,  con all’interno la stringa di comando, che dipende dal valore che si darà alla variabile $stringa.

	<combobox var="scelta">
	if [ -s $HOME/cartella/ ]
	then
	ls $HOME/cartella/ -A > .temp
	cat .temp
	rm .temp
	else
	echo "Nessun valore"
	fi
	</combobox>

La < combobox > successivamente per far vedere questa lista non farà altro che fare un ls -A ( elenca i file uno sotto l’altro) della cartella salvando il risultato in un file temporaneo che verrà successivamente utilizzato per far vedere la lista all’utente.

<button title="Utilizza la selezione">
if [ -e $HOME/cartella/$scelta ]
then
a=`cat cat $HOME/cartella/$scelta 2> /dev/null`
$a
else
zenity --error --title=buc --text="Errore"
fi
</button>

Per utilizzare la stringa di comando, che è all’interno del file che abbiamo utilizzato per stilare la lista, il codice genera una variabile $a e ad essa verrà associato come valore ciò che è scritto all’interno di uno dei file contenuto in $HOME/cartella/ scelto dall’utente.

 Questo codice io l’ho utilizzato per realizzare l’applicativo eRadio.mc

Credo che sia utile, per far capire bene il funzionamento di questo codice, inserire la porzione di codice che permette di aggiungere nuove radio nell’applicativo.

<tab>
<title>echo "Aggiungi Radio"</title>
<label>
	echo "Inserisci il nome della radio"
</label>

	<text var="nome">
		echo ""
	</text>

<label>
	echo "Inserisci il link per ascoltare in streaming la radio"
</label>
	<text var="streaming">
		echo ""
	</text>

<button title="Salva la nuova Radio">
	if [ -s $HOME/.radio-BUC/ ]
		then
		cd $HOME/.radio-BUC/
		touch R-$nome
		echo "$streaming" > $HOME/.radio-BUC/R-$nome
			else
			mkdir $HOME/.radio-BUC/
			cd $HOME/.radio-BUC/
			touch R-$nome
			echo "$streaming" > $HOME/.radio-BUC/R-$nome
	fi

if [ -e $HOME/.radio-BUC/R-$nome ]
then
zenity --info --title=buc --text="Operazione completata.
Per visualizzare le modifiche riavvia l'applicativo"
else
zenity --error --title=buc --text="Errore: segnala questo errore a smat@sicilinux.org"
fi
</button>
</tab>
<tab>
<title> echo "Radio Personalizzate" </title>

<combobox var="radiop">
if [ -s $HOME/.radio-BUC/ ]
then
ls $HOME/.radio-BUC/ -A > .temp
cat .temp
rm .temp
else
echo "Nessuna Radio Aggiunta"
fi
</combobox>

		<button title="Ascolta la Radio in background">
		if [ -e $HOME/.radio-BUC/$radiop ]
		then
		streamingp=`cat cat $HOME/.radio-BUC/$radiop 2> /dev/null`
		mplayer -cache 128 $streamingp &
		else
		zenity --error --title=buc --text="Errore"
		fi
		</button>

		<button title="Ascolta la Radio">
		if [ -e $HOME/.radio-BUC/$radiop ]
		then
		streamingp=`cat cat $HOME/.radio-BUC/$radiop 2> /dev/null`
		xterm -e mplayer -cache 128 $streamingp &
		else
		zenity --error --title=buc --text="Errore"
		fi
		</button>

			<button title="Spegni la Radio">
			killall mplayer
			</button>

				<button title="Cancella la Radio">
				if [ -e $HOME/.radio-BUC/$radiop ]
				then
				rm -f $HOME/.radio-BUC/$radiop
					if [ -e $HOME/.radio-BUC/R-* ]
					then
					echo
					else
					rm -rf $HOME/.radio-BUC/
					fi
				zenity --info --title=buc --text="Operazione completata.
				Per visualizzare le modifiche riavvia l'applicativo"
				else
				zenity --error --title=buc --text="Errore"
				fi
				</button>
</tab>

Esprimi il tuo giudizio con un commento oppure condividilo tramite i pulsanti in basso :)

| More

Articoli che potrebbero interessarti:

Un commento

Un commento per “[BUC - Scripting] Realizzare una combobox dinamica”

Trackbacks

  1. [BUC - Scripting] Realizzare una combobox dinamica

Commenti RSS

Scrivi un commento