Solaris Common Desktop Environment: Handbok för avancerade användare och systemadministratörer

Introduktion till datatyper

När användaren skapar en ny datafil varierar filikonens utseende och metod i filhanteraren, beroende på den typ av datafil som användaren har skapat. Med skrivbordets datatypsmekanism går det att skapa anpassat utseende och en anpassad metod för filer och kataloger.

Vad är en datatyp?

En datatyp är en konstruktion som definieras i skrivbordets databas. Nedan finns t ex definitionen till datatypen XWD. Definitionen finns i konfigurationsfilen /usr/dt/appconfig/types/språk/xclients.dt.

DATA_ATTRIBUTES XWD
 {
 	ACTIONS				Open,Print
 	ICON					Dtxwd
 	NAME_TEMPLATE		%s.xwd
 	MIME_TYPE      	application/octet-stream
 	SUNV3_TYPE    		xwd-file
 	DESCRIPTION  		Den här filen innehåller en bild i XWD-\
 							format. Dessa filer skapas vanligtvis genom\
 							att en bild tas av fönster med hjälp av åtgärden XwdCapture.
 							action. Dess datatyp heter XWD. XWD-filer \
 							har namn som slutar på `.xwd' eller `.wd'.
 }
DATA_CRITERIA XWD1
 {
 	DATA_ATTRIBUTES_NAME			XWD
 	MODE									f
 	NAME_PATTERN						*.xwd
 }

 DATA_CRITERIA XWD2
 {
 	DATA_ATTRIBUTES_NAME			XWD
 	MODE									f
 	NAME_PATTERN						*.wd
 }

Alla datatypsdefinitioner består av två delar:

DATA_ATTRIBUTES - beskriver datatypens utseende och egenskaper.

DATA_CRITERIA - avgör regler (namn och innehåll) för hur en fil ska kategoriseras så att den tillhör en datatyp.

Fältet DATA_ATTRIBUTES_NAME kopplar villkoren till attributen.

Det kan finnas flera DATA_CRITERIA till ett DATA_ATTRIBUTE. Datatypen XWD har t ex två villkor för att ange två olika namnvillkor (NAME_PATTERN)namn som slutar med .xwd respektive .wd.

Hur datatyper ansluter datafiler till åtgärder

Ta datatypen XWD som exempel. Användaren skapar en fil av XWD-typ genom att ge filen något av filnamnstilläggen .xwd eller .wd. Skrivbordssystemet använder filnamnet som villkor vid bestämningen av filens datatyp.

Varje fil med datatypen XWD får:

Köra åtgärder från Markera-menyn

Markera-menyn i filhanteraren är bara aktiv när en fil eller en katalog är markerad. Vilket kommando som finns längst ned på Markera-menyn beror på datatypen. Om en XWD-fil är markerad finns alternativen Öppna och Skriv ut på Markera-menyn.

Fältet ACTIONS i datatypsdefinitionen anger vilka kommandon som läggs till längst ned på datatypens Markera-meny.

DATA_ATTRIBUTES XWD { ACTIONS Öppna,Skriv ut ... }

Innehållet på Markera-menyn beror på datatypen. Det finns många datatyper som innehåller åtgärden Open (Öppna). Det innebär att när du markerar en fil av en sådan datatyp i filhanteraren och visar Markera-menyn, finns kommandot Öppna på menyn.

Figur 10-5 Markera-menyn för en XWD-fil

Graphic

Åtgärden Open (Öppna) kör normalt programmet som datafilen hör till. Om du t ex öppnar en XWD-fil körs åtgärden Xwud, vilken i sin tur kör X-klienten xwud för att visa skärmbilden. Med andra ord är åtgärden Open (Öppna) synonym med åtgärden Xwud, för datatypen XWD. Om du öppnar en fil av typen TEXTFILE öppnas Textredigeraren. När du öppnar en BM- (bitmapp) eller PM-fil (bildpunktsmönster) körs ikonredigeraren.

Du kan skapa olika Öppna-åtgärder som utför olika saker med två möjligheter till åtgärdsdefinitioner:

Nedan finns definitionen av den åtgärd som tilldelar Öppna-åtgärden åtgärden Xwud för datatypen XWD. Den finns i databaskonfigurationsfilen /usr/dt/appconfig/types/C/xclients.dt.

ACTION Open
 {
 	LABEL				Open
 	ARG_TYPE			XWD
 	TYPE				MAP
 	MAP_ACTION		Xwud
 }

Fältet TYPE anger att detta är en avbildningsåtgärd. MAP_ACTION anger att åtgärden kör åtgärden Xwud. Fältet ARG_TYPE anger att åtgärden bara gäller för filer med datatypen XWD.

Jämför föregående definition av åtgärden Öppna med nästa definition, som finns i databasfilen /usr/dt/appconfig/types/C/dt.dt.

ACTION Open
 {
 	LABEL					Open
 	ARG_TYPE				BM
 	TYPE					MAP
 	MAP_ACTION			Dticon
 }

Den här definitionen gäller för filer med datatypen (ARG_TYPE) BM (bitmappsfiler). Definitionen tilldelar åtgärden Öppna åtgärden Dticon, som kör Ikonredigeraren.

Definiera hur datatypens dubbelklickningar fungerar

Vad som händer när du dubbelklickar för en viss datatyp definieras av den första posten i fältet ACTIONS. För datatypen XWD innebär ett dubbelklick att åtgärden Öppna körs, vilken i sin tur kör åtgärden Xwud.

Släppa en datafil på en åtgärdsikon

När användaren släpper en datafil på en åtgärdsikon körs åtgärden med datafilen som argument (se "Hur åtgärder använder datafiler som argument").

När t ex datafilen XWD släpps på ikonen Visa xwd körs åtgärden Xwud med den datafilen som argument. Detta kör X-klienten xwud med datafilen.

Skriva ut datatyper från skrivbordet

En datafil kan skrivas ut på följande sätt från skrivbordet:

Dessutom går det att skriva ut från många program.

Vid skrivbordsutskrift används åtgärden Skriv ut. Skriv ut är (liksom Öppna) ett åtgärdsnamn som används till flera olika typer av data. Därför används åtgärdsavbildning och fältet ARG_TYPE för Skriv ut-åtgärder för att anpassa utskriften efter varje datatyp.

Nedan finns t ex åtgärden Skriv ut för datatypen XWD. Definitionen finns i /usr/dt/appconfig/types/språk/xclients.dt.

ACTION Print
 {
 	LABEL					Print
 	ARG_TYPE				XWD
 	TYPE					MAP
 	MAP_ACTION			NoPrint
 }

Den här Print (Skriv ut)-åtgärden, som är specifik för XWD-filer, tilldelas en NoPrint-åtgärd. NoPrint är en särskild åtgärd som definieras i /usr/dt/appconfig/types/språk/dt.dt. Åtgärden NoPrint visar en dialogruta som anger att den här datatypen inte kan skrivas ut.

Jämför Print-åtgärden för XWD med följande Print-åtgärd för PCL-filer:

ACTION Print
{
 	LABEL				Print
 	ARG_TYPE			PCL
 	TYPE				MAP
 	MAP_ACTION		PrintRaw
 }

I filen /usr/dt/appconfig/types/språk/print.dt definieras åtgärden PrintRaw, som innehåller följande kommandorad för utskrift av PCL-filerna:

ACTION PrintRaw
 {
 	TYPE						COMMAND
 	WINDOW_TYPE				NO_STDIO
 	EXEC_STRING				/usr/dt/bin/dtlp -w %(File)Arg_1% /usr/dt/bin/dtlp -w %(File)Arg_1%
 }