Olá pessoal!
Estou con dúvidas em relacao ao uso do importBase, estudei a norma sua utilizacao e achei que seria facil.
Segue abaixo o codigo dos NCL
NCL que importa a Base de Regiões
<head>
<regionBase>
<importBase documentURI="ImportBaseNCLimportado.ncl" alias="import"/>
</regionBase>
<descriptorBase>
<descriptor region="dAzul" id="import#rgBotaoAzul"></descriptor>
<descriptor region="dVerde" id="import#rgBotaoVerde"></descriptor>
</descriptorBase>
</head>
<body>
<port id="Pbotao1" component="botaoAzul"></port>
<port id="Pbotao2" component="botaoVerde"></port>
<media id="botaoAzul" src="media/BlueButton.png" descriptor="dAzul"/>
<media id="botaoVerde" src="media/GreenButton.png" descriptor="dVerde"></media>
</body>
</ncl>
NCL que possui a base de regiões a ser importada
<head>
<regionBase>
<region left="0%" top="0%" width="100%" height="100%" id="rgTV" zIndex="0">
<region left="10%" top="10%" width="30%" height="30%" id="rgBotaoAzul" zIndex="1"></region>
<region left="30%" top="40%" width="30%" height="30%" id="rgBotaoVerde" zIndex="1"></region>
<region>
</regionBase>
<descriptorBase>
<descriptor region="rgBotaoAzul" id="dAzul"></descriptor>
<descriptor region="rgBotaoVerde" id="dVerde"></descriptor>
</descriptorBase>
</head>
<body>
<port id="Pbotao1" component="botaoAzul"></port>
<port id="Pbotao2" component="botaoVerde"></port>
<media id="botaoAzul" src="media/BlueButton.png" descriptor="dAzul"/>
<media id="botaoVerde" src="media/GreenButton.png" descriptor="dVerde"></media>
</body>
</ncl>
Segue abaixo os erro dado
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at br.pucrio.telemidia.converter.ncl.NclDocumentManager.addVisibleDocument(Unknown Source)
at br.pucrio.telemidia.converter.ncl.NclDocumentConverter.importDocument(Unknown Source)
at br.pucrio.telemidia.converter.ncl.NclLayoutConverter.addImportBaseToRegionBase(Unknown Source)
at br.pucrio.telemidia.converter.framework.ncl.NclLayoutParser.parseRegionBase(Unknown Source)
at br.pucrio.telemidia.converter.framework.ncl.NclStructureParser.parseHead(Unknown Source)
at br.pucrio.telemidia.converter.framework.ncl.NclStructureParser.parseNcl(Unknown Source)
at br.pucrio.telemidia.converter.framework.ncl.NclDocumentParser.parseRootElement(Unknown Source)
at br.pucrio.telemidia.converter.ncl.NclDocumentConverter.parseRootElement(Unknown Source)
at br.pucrio.telemidia.converter.framework.DocumentParser.parse(Unknown Source)
at br.pucrio.telemidia.converter.framework.DocumentParser.parse(Unknown Source)
at br.pucrio.telemidia.converter.ncl.NclDocumentManager.compileDocument(Unknown Source)
at br.pucrio.telemidia.converter.ncl.NclDocumentManager.addDocument(Unknown Source)
at br.pucrio.telemidia.ginga.ncl.Formatter.addDocument(Unknown Source)
at br.pucrio.telemidia.ginga.ncl.gui.GingaPlayerWindow.openNclFile(Unknown Source)
at br.pucrio.telemidia.ginga.ncl.gui.GingaPlayerWindow.actionPerformed(Unknown Source)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1170)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1211)
at java.awt.Component.processMouseEvent(Component.java:6038)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)
at java.awt.Component.processEvent(Component.java:5803)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4410)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2429)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Autor: andrey silva souza
44 comentários
<ncl xsi:schemaLocation="http://www.ncl.org.br/NCL3.0/EDTVProfile www.ncl.org.br/NCL3.0/profiles/NCL30EDTV.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.ncl.org.br/NCL3.0/EDTVProfile" id="doc2">
<head>
<regionBase>
<region id="rg01" left="0" top="0" width="120" height="84" zIndex="0"/>
</regionBase>
<descriptorBase>
<descriptor id="d01" region="rg01"/>
</descriptorBase>
</head>
<body>
</body>
</ncl> 3) O doc1 terá o formato abaixo: <?xml version="1.0" encoding="ISO-8859-1"?>
<ncl xsi:schemaLocation="http://www.ncl.org.br/NCL3.0/EDTVProfile www.ncl.org.br/NCL3.0/profiles/NCL30EDTV.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.ncl.org.br/NCL3.0/EDTVProfile" id="doc1">
<head>
<regionBase>
</regionBase>
<descriptorBase>
<importBase documentURI="doc2.ncl" alias="reuseDescriptor" />
</descriptorBase>
</head>
<body>
<port id="porta" component="media01"/>
<media id="media01" src="media01.png" type="image/png" descriptor="reuseDescriptor#d01"/>
</body>
</ncl> Preceba que utilizamos o alias "reuseDescriptor" do documento importado na seção <descriptorBase> na definição da mídia "midia01".
Utilizando este padrão os exemplos rodam normalmente, como se os descritores estivessem inserido no documento principal (doc01). Espero ter ajudado. Abraços,
Fernando.
Basta você importar apenas a base de regiões.
Estou utilizando o Ginga-NCL Player. Abraço,
Fernando