Alias¶
Introduzione
Un alias è un particolare tipo di variabile che punta a un nodo sorgente, indicato con il suo identificativo unico (attributo NodeId). Collega due aree del modello informativo di progetto e rende possibile l’impostazione di collegamenti dinamici per realizzare particolari logiche dinamiche altrimenti impossibili.
Un alias si crea in un oggetto, o tipo di oggetto, definito genericamente nodo padre. Il nodo sorgente a cui punta identifica l”area sorgente, che comprende lo stesso nodo sorgente e tutti i suoi nodi figli.
Nota
tipicamente gli alias si creano negli oggetti grafici o nelle cartelle che contengono oggetti grafici, per realizzare interfacce utente dinamiche (ad esempio, quando si realizza un widget che rappresenta un tipo di motore e che mostra dinamicamente i valori delle diverse istanze dello stesso tipo).
Funzionamento di un alias in breve
Questo schema riassume il funzionamento degli alias. Nell’oggetto A è presente un alias che punta al nodo sorgente B. Dal nodo A e/o da qualunque suo nodo figlio è possibile realizzare collegamenti dinamici con il nodo B e/o qualunque suo nodo figlio.
Collegamenti dinamici tramite alias
Quando non si sfrutta un alias, un collegamento dinamico si realizza tramite un riferimento/percorso relativo da un nodo padre al nodo sorgente.
Quando è presente un alias è possibile realizzare collegamenti dinamici più forti. Infatti, grazie al suo riferimento all’identificativo unico del nodo sorgente (attributo NodeId), l’alias funge da «intermediario» tra il nodo padre e il nodo sorgente,
Di seguito un esempio in cui si vuole impostare il valore del nodo C3 tramite collegamento dinamico al nodo B2. Nel primo caso si usa un collegamento dinamico e il riferimento è ../../B/B2
. Nel secondo caso, grazie all’alias impostato sul nodo C, il collegamento viene impostato sfruttando l’alias e il riferimento è {B}/B2
.
Quando usare gli alias
È necessario usare gli alias per impostare collegamenti dinamici nei seguenti casi:
Quando il nodo sorgente del collegamento dinamico, e quindi i suoi nodi figli, esiste solo a runtime (ad esempio i nodi della sessione - vedere Nodi della sessione). In questo caso, a design time si imposta un collegamento verso un nodo dell’area sorgente fittizio messo a disposizione dall’alias.
Quando il nodo sorgente del collegamento dinamico, e quindi i suoi nodi figli, esiste anche a design time, ma a runtime può cambiare per effetto delle logiche dinamiche impostate (ad esempio nel caso dei widget - vedere Alias nei widget).
Un alias è inoltre utile come «scorciatoia» per realizzare collegamenti dinamici verso nodi di interesse ricorrente, senza quindi dover cercare ogni volta lo stesso nodo sorgente. A design time infatti i nodi sorgente sono raggruppati e facilmente accessibili nella finestra dei collegamenti dinamici, mentre a runtime è sufficiente conoscere il nome di un alias per accedere al nodo a cui punta (vedere API per gli alias).
Proprietà Kind di un alias
Un alias contiene sempre una proprietà Kind, il cui valore è un nodo di riferimento, più precisamente un riferimento al tipo di oggetto/variabile da cui deriva il nodo sorgente, oppure, se il nodo sorgente non è derivato da un tipo, un riferimento allo stesso nodo sorgente. Il nodo di riferimento è necessario per descrivere il modello informativo del nodo sorgente. Infatti l’alias espone al nodo padre, e a tutti i suoi nodi figli, i nodi dell’area sorgente sulla base di un modello informativo noto, che corrispondi al modello del nodo Kind.
Quando si imposta il nodo sorgente di un alias, Q Studio valorizza automaticamente la proprietà Kind. Ad esempio, se il nodo sorgente è un’istanza di un tipo Motor, la proprietà Kind punta al nodo del tipo Motor.
Quando però il nodo sorgente di un alias viene impostato solo a runtime, ad esempio nel caso dei widget, è necessario specificare il nodo Kind. Nella finestra dei collegamenti dinamici si possono così realizzare collegamenti sfruttando i nodi del modello informativo del nodo Kind, che a design time rappresentano i nodi effettivi del progetto a runtime.
Alias nei widget
Quando si progetta un widget (vedere Oggetti grafici riusabili: widget) è sempre necessario creare un alias al suo interno. Tramite la proprietà Kind dell’alias infatti si imposta il nodo di riferimento (es. Motor), che rappresenta la struttura di nodi che si vuole presentare graficamente nel widget. In questo modo, le proprietà e più in generale le variabili all’interno del widget, possono essere impostate tramite collegamenti dinamici con i nodi del nodo di riferimento.
In ogni istanza di un widget, il nodo sorgente dell’alias determina la sorgente effettiva dei collegamenti dinamici. Ad esempio, MorotWidget1 potrebbe mostrare i valori di Motor1.
Per un tutorial sull’uso degli alias nei widget vedere Progettare un widget per visualizzare valori di più motori.
Alias generati automaticamente da UNIQO
Q Studio a design time genera automaticamente un alias per ogni oggetto Schema ricetta e ogni oggetto Pannello dinamico presente nel progetto. Questi alias sono sempre accessibili da qualsiasi nodo e hanno lo stesso BrowseName dei corrispondenti oggetti (ad esempio, per un oggetto PanelLoader1 viene generato un alias PanelLoader1).
Nota
gli alias per gli oggetti Schema ricetta vengono creati all’interno del nodo radice del progetto.
A runtime, inoltre, il Presentation Engine rende disponibile a ogni sessione interattiva (vedere Presentation engine) un alias per ogni Pannello dinamico del progetto.
Alias di sessione
Q Studio fornisce l”alias di sessione Session, a disposizione nella finestra dei collegamenti dinamici solo per impostare proprietà degli oggetti grafici e degli oggetti di tipo Report.
È un alias di sistema che punta al nodo Session, ovvero il nodo della sessione corrente, che esiste solo a runtime e che contiene diversi nodi valorizzati in base alle caratteristiche dell’utente e in base alla localizzazione della sessione (vedere Nodi della sessione).
Come si presentano gli alias nella finestra dei collegamenti dinamici
In Q Studio, nella finestra dei collegamenti dinamici, gli alias sono raggruppati nella cartella Alias. Fanno eccezione gli alias per gli oggetti Pannello dinamico generati automaticamente da Q Studio, raggruppati in una specifica cartella Pannelli dinamici.
Nella finestra, ogni alias è identificato da un nodo con icona e dal suo nome tra parentesi graffe. Il nodo si può espandere per navigare nel modello informativo del nodo a cui punta l’alias e per selezionare il nodo sorgente del collegamento dinamico.

Vedi anche
Procedure correlate
API correlate
Esempi applicativi