Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake ha presentato diverse novità per la sua piattaforma legate all'intelligenza artificiale. Quella forse più eclatante è una collaborazione con OpenAI, ma non mancano diverse nuove funzionalità che rendono la piattaforma più flessibile e in grado di rispondere meglio alle esigenze in continuo cambiamento delle aziende
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Mate X7 rinnova la sfida nel segmento dei pieghevoli premium puntando su un design ancora più sottile e resistente, unito al ritorno dei processori proprietari della serie Kirin. L'assenza dei servizi Google e del 5G pesa ancora sull'esperienza utente, ma il comparto fotografico e la qualità costruttiva cercano di compensare queste mancanze strutturali con soluzioni ingegneristiche di altissimo livello
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-10-2007, 19:00   #1
alexievic
Member
 
Iscritto dal: Oct 2001
Città: Forlì
Messaggi: 268
[Java] Problema action

Nella mia applicazione c'è una JTextarea utilizzata come editor.
Il problema è nelle actions.

- Prima dichiaro un array di action aggiuntive

Codice:
private Action[] defaultActions = { new NewAction(), new OpenAction(),
            new SaveAction() ... ecc }
- poi inserisco le action in una Hashtable 'commands' che serve per richiamare le action tramite nome all'interno del programma

Codice:
        Action[] actions = getActions();
        for (int i = 0; i < actions.length; i++)
        {
            Action a = actions[i];
            commands.put(a.getValue(Action.NAME).toString(), a);
                }
- il metodo getActions qui sopra è questo:

Codice:
    protected Action[] getActions()
    {
        return TextAction.augmentList(editor.getActions(), defaultActions);
    }
Io apro una JDialog (implementata in un altro file) che ha dentro dei campi di testo JTextField. Il problema che si presenta è che in tutti questi campi non funziona più il copia e incolla tramite tastiera (CTRL+C, ecc).
Commentando la return del metodo getActions tornano funzionanti quindi immagino che sia dovuto a quella riga di codice.
In ogni modo non riesco a spiegarmi perchè quel metodo statico di TextAction vada ad influire sugli altri controlli del programma, se non sbaglio il suo compito non è solo quello di aumentare la lista di action passati come primo argomento con quelle passate come secondo argomento? Perchè vanno a modificare le action degli altri controlli del programma?
__________________
Asus P5K-E | E6600 @3.2ghz | Artic Freezer 7 Pro | 2X1GB Corsair PC6400 | Sparkle nVidia 8800 GTS 320MB | HD Hitachi 320GB SataII | Maxtor 300GB EIDE | DVD Optiarc AD-7170S | Monitor LCD Acer AL1917 19'' | Monitor Philips 109B CRT 19''
alexievic è offline   Rispondi citando il messaggio o parte di esso
Old 09-10-2007, 19:49   #2
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
E' possibile che sia per questa ragione (estratto dalla documentazione per TextAcion.augment):

"The second list takes precedence over the first list; that is, when both lists contain a command with the same name, the command from the second list is used."

Puoi capire subito se c'è un conflitto di nomi invertendo i parametri della tua invocazione di augmentList

Codice:
return TextAction.augmentList(defaultActions, editor.getActions());
Se le combinazioni predefinite riappaiono allora è un problema di nomi. Altrimenti è un bel mistero. Forse usi gli stessi acceleratori per azioni diverse?
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 10-10-2007, 00:14   #3
alexievic
Member
 
Iscritto dal: Oct 2001
Città: Forlì
Messaggi: 268
Innanzi tutto ti ringrazio per i consigli.
Ho provato ad invertire le due liste ma le cose non cambiano.
Per attivare le action di copia, incolla e taglia in un campo (ho fatto una prova solo li) ho dovuto fare una cosa del genere

Codice:
		JTextField owlurlpathField = new JTextField(30);

		Keymap parent = owlurlpathField.getKeymap();
		Keymap newmap = JTextComponent.addKeymap("KeymapMap", parent);
		KeyStroke u = KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_MASK);
		Action actionU = new DefaultEditorKit.CopyAction();
		newmap.addActionForKeyStroke(u, actionU);
		KeyStroke p = KeyStroke.getKeyStroke(KeyEvent.VK_V, InputEvent.CTRL_MASK);
		Action actionP = new DefaultEditorKit.PasteAction();
		newmap.addActionForKeyStroke(p, actionP);
		KeyStroke x = KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK);
		Action actionX = new DefaultEditorKit.CutAction();
		newmap.addActionForKeyStroke(x, actionX);		
		owlurlpathField.setKeymap(newmap);
In questo modo nel campo suddetto ritornano operative le action interessate, però dovrei farlo in altri 3/4 campi ed immagino esista un altro modo per risolvere il problema dovuto molto probabilmente alla TextAction.augmentList.
__________________
Asus P5K-E | E6600 @3.2ghz | Artic Freezer 7 Pro | 2X1GB Corsair PC6400 | Sparkle nVidia 8800 GTS 320MB | HD Hitachi 320GB SataII | Maxtor 300GB EIDE | DVD Optiarc AD-7170S | Monitor LCD Acer AL1917 19'' | Monitor Philips 109B CRT 19''
alexievic è offline   Rispondi citando il messaggio o parte di esso
Old 10-10-2007, 20:06   #4
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Il problema non è tanto se esistano alternative (potresti usare la mappa delle azioni dei tuoi componenti per registrare nuove azioni) ma perchè quel getActions non funziona. Io ho provato a guardare ma non mi sembra che a parte il "name clash" esistano altri conflitti che possano comportare l'invalidità delle azioni predefinite fuse con le nuove tramite TextAction.augmentList. Misteri dell'informatica.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 10-10-2007, 21:51   #5
alexievic
Member
 
Iscritto dal: Oct 2001
Città: Forlì
Messaggi: 268
Ho trovato il problema oggi, ti ringrazio!
Praticamente era colpa di un metodo che attivava e disattivava alcune action condivise (eh, se non sarebbero action!). In pratica le disattivava quando il file non era ancora stato aperto nell'editor e dopo li riattivava. Il problema è che nel dialogo di creazione nuovo progetto poi non funzionavano copia, incolla e taglia all'interno dei JTextField.
Ho risolto facendo un controllo che riattiva le action prima di mostrare il dialogo e poi le ripristina allo stato precedente una volta che viene chiuso. Trattandosi di dialogo modale non vi sono problemi.
Quindi era colpa mia!

Ora però ho un problema ben più complesso da risolvere!
Devo gestire l'undo relativamente a gruppi di modifiche sul document dell'editor.
In pratica utilizzo il metodo replace sul document dell'area di testo per rimpiazzare un testo normale con un testo con attributi (classe AttributeSet) personalizzati più uno per la sottolineatura. Il problema è che l'undo è gestito per ogni singola operazione atomica di modifica sul document e invece la replace non è atomica ed esegue due operazioni (prima elimina poi mette il testo nuovo).
Sto guardando il javadoc delle varie classi di gestione del sistema undo ma ci capisco sempre meno e non ho ancora trovato documentazione o tutorial pratici che spieghino come utilizzare undo/redo su comandi composti.

Comunque mi sa che sono andato un tantino off-topic!
__________________
Asus P5K-E | E6600 @3.2ghz | Artic Freezer 7 Pro | 2X1GB Corsair PC6400 | Sparkle nVidia 8800 GTS 320MB | HD Hitachi 320GB SataII | Maxtor 300GB EIDE | DVD Optiarc AD-7170S | Monitor LCD Acer AL1917 19'' | Monitor Philips 109B CRT 19''
alexievic è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti Test in super anteprima di Navimow i220 LiDAR: i...
Ford: l'elettrico genera una perdita di ...
Ayaneo Next 2: la console portatile Wind...
Il WiFi può vederti senza telecam...
Linux sotto assedio: SSHStalker riporta ...
Stellantis: dopo il crollo di venerd&igr...
Combat Liquid 360 HUD: raffreddamento AI...
Tornano le EVO Sessions della Formula E:...
Moltbook, il social network per AI: i po...
Cina: eseguito il test della navicella M...
Mistral, il rivale europeo di OpenAI, in...
Libri piratati, allarme rosso: 722 milio...
Ayaneo svela quasi tutte le specifiche d...
Sony chiude definitivamente con i regist...
Renault Twingo E-Tech Electric sotto i 2...
Auto elettriche, il freddo non fa pi&ugr...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 05:30.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v