Zurück   Flashforum > Flex und AIR > Flex allgemein

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 29-09-2010, 07:43   #1 (permalink)
keep cool...
 
Benutzerbild von cytrics
 
Registriert seit: Mar 2006
Ort: Erlangen
Beiträge: 356
DataGrid

Hy,

wie kann ich per Entertaste in der selektierten Zeile in eine bestimmte Zelle eine Radiobuttongroup hinzuadden?

Das mit dem Keyevent auf die selektierte Zeile habe ich schon, nur weiß ich nicht, wie ich nun zusätzlich zum Text in einer Zelle eine Radiobuttongroup einfügen kann...


Danke schon mal

--> Flex 4


Grüße
cytrics ist offline   Mit Zitat antworten
Alt 29-09-2010, 08:11   #2 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.142
Du musst einen ItemRenderer bauen. Aber was soll dir eine RadioButtonGroup bringen, ohne RadioButtons.

-> das lässt sich nicht mit zwei Sätzen beantworten.
Omega Psi ist offline   Mit Zitat antworten
Alt 29-09-2010, 08:40   #3 (permalink)
keep cool...
 
Benutzerbild von cytrics
 
Registriert seit: Mar 2006
Ort: Erlangen
Beiträge: 356
Hy,

Zitat:
Aber was soll dir eine RadioButtonGroup bringen, ohne RadioButtons.
das ist mir schon klar, dachte nicht, das ich es extra noch erwähnen sollte...

ItemRenderer habe ich schon, bin gerade am rumbasteln...
cytrics ist offline   Mit Zitat antworten
Alt 29-09-2010, 12:06   #4 (permalink)
keep cool...
 
Benutzerbild von cytrics
 
Registriert seit: Mar 2006
Ort: Erlangen
Beiträge: 356
Hy,

habe es soweit hinbekommen, nur wenn ich mit Enter die Zeile vergrößere, dann haben die Radiobuttons keinen Fokus.
Erst wenn ich mit der Maus einen anklicke, dann haben sie ihn.

Wie kann ich den Radiobuttons per Script (abfangen der Pfeilaste nach rechts, oder so...) den Focus geben?

Grund: Es soll mit der Tastatur bedienbar sein...

Danke


Grüße
cytrics ist offline   Mit Zitat antworten
Alt 29-09-2010, 15:55   #5 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.142
Das könnte noch zu Kopfschmerzen führen. Wenn der Click im Renderer ankommt, könntest du es mit dem FocusManager versuchen. Das mag schon ausreichen.
Omega Psi ist offline   Mit Zitat antworten
Alt 30-09-2010, 06:29   #6 (permalink)
keep cool...
 
Benutzerbild von cytrics
 
Registriert seit: Mar 2006
Ort: Erlangen
Beiträge: 356
Hy,

jupp, danke für den Tip, mit dem FocusManager gehts...


Grüße
cytrics ist offline   Mit Zitat antworten
Alt 30-09-2010, 07:32   #7 (permalink)
keep cool...
 
Benutzerbild von cytrics
 
Registriert seit: Mar 2006
Ort: Erlangen
Beiträge: 356
Hy Omega Psi,

hast du hierfür evtl. noch nen Tip?

--> Pfeiltaste nach links setzt den Focus wieder aufs DG, um mit den Pfeiltasten up und down durch die Zeilen navigieren zu können.
Geht bedingt, da beim drücken der Pfeiltaste (links) zwar das DG den Focus erhält, aber bei den Radiobuttons der Focus sich um 1 verschiebt, da ja normal auf den Pfeiltasten durch die Radiobuttons navigiert werden kann...
D.h., wenn der 2. Radio selected ist und die Pfeiltaste (links) gedrückt wird, bekommt das DG den Focus (passt) aber es ist dann der 1. Radio selected.

Grüße
cytrics ist offline   Mit Zitat antworten
Alt 30-09-2010, 19:44   #8 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.142
Sorry, da muss ich gerade passen. Müsste mch da selbst erstmal intensiver mit befassen.
Omega Psi ist offline   Mit Zitat antworten
Alt 01-10-2010, 09:10   #9 (permalink)
keep cool...
 
Benutzerbild von cytrics
 
Registriert seit: Mar 2006
Ort: Erlangen
Beiträge: 356
Hy Omega Psi,

no Prob...
Das mit den Pfeiltasten habe ich hinbekommen...
Nur gibts jetzt ein anderes Prob...Auf Enter springen die Selektionen der Radiobuttons auf und ab und die Vorbelegung der Radiobuttons passt auch nicht, wie ich es in der XML zugewiesen habe...

Wenn du Zeit und Lust hast, kannste da ja mal gucken... :-)
Im Tabnav --> Übersicht

Danke

Grüße

xml
Code:
<?xml version="1.0" encoding="utf-8"?>
			<questions>
				<question id="0">
					<nr></nr>
					<frage></frage>
					<antwort></antwort>
					<antwortRB1></antwortRB1>	
					<antwortRB1SELECT></antwortRB1SELECT>
					<antwortRB2></antwortRB2>
					<antwortRB2SELECT></antwortRB2SELECT>
					<antwortRB3></antwortRB3>
					<antwortRB3SELECT></antwortRB3SELECT>
					<score></score>
					<bemerkung></bemerkung>
					<open></open>
				</question>
				<question id="1">
					<nr>1</nr>
					<frage>Frage Nr 1 steht hier....</frage>
					<antwortText>Weiß ich nicht</antwortText>
					<antwortRB1>Ja</antwortRB1>					
					<antwortRB1SELECT>false</antwortRB1SELECT>
					<antwortRB2>Nein</antwortRB2>
					<antwortRB2SELECT>false</antwortRB2SELECT>
					<antwortRB3>Weiss ich nicht</antwortRB3>
					<antwortRB3SELECT>true</antwortRB3SELECT>
					<score>1</score>
					<bemerkung>images/blank.png</bemerkung>
					<open>false</open>					
				</question>
				<question id="2">
					<nr>2</nr>
					<frage>Frage Nr 2 steht hier....</frage>
					<antwortText>Ja</antwortText>					
					<antwortRB1>Ja</antwortRB1>
					<antwortRB1SELECT>true</antwortRB1SELECT>
					<antwortRB2>Nein</antwortRB2>
					<antwortRB2SELECT>false</antwortRB2SELECT>
					<antwortRB3>Weiss ich nicht</antwortRB3>
					<antwortRB3SELECT>false</antwortRB3SELECT>
					<score>2</score>
					<bemerkung>images/missing_single.png</bemerkung>
					<open>true</open>
				</question>
				<question id="3">
					<nr>3</nr>
					<frage>Frage Nr 3 steht hier....</frage>
					<antwortText>Nein</antwortText>
					<antwortRB1>Ja</antwortRB1>					
					<antwortRB1SELECT>false</antwortRB1SELECT>
					<antwortRB2>Nein</antwortRB2>
					<antwortRB2SELECT>true</antwortRB2SELECT>
					<antwortRB3>Weiss ich nicht</antwortRB3>
					<antwortRB3SELECT>false</antwortRB3SELECT>
					<score>2</score>
					<bemerkung>images/missing_warning.png</bemerkung>
					<open>true</open>
				</question>
				<question id="4">
					<nr>4</nr>
					<frage>Frage Nr 4 steht hier....</frage>
					<antwortText>Weiss ich nicht</antwortText>
					<antwortRB1>Ja</antwortRB1>					
					<antwortRB1SELECT>false</antwortRB1SELECT>
					<antwortRB2>Nein</antwortRB2>
					<antwortRB2SELECT>false</antwortRB2SELECT>
					<antwortRB3>Weiss ich nicht</antwortRB3>
					<antwortRB3SELECT>true</antwortRB3SELECT>
					<score>1</score>
					<bemerkung>images/blank.png</bemerkung>
					<open>false</open>
				</question>
				<question id="5">
					<nr>5</nr>
					<frage>Frage Nr 5 steht hier....</frage>
					<antwortText>Ja</antwortText>
					<antwortRB1>Ja</antwortRB1>					
					<antwortRB1SELECT>true</antwortRB1SELECT>
					<antwortRB2>Nein</antwortRB2>
					<antwortRB2SELECT>false</antwortRB2SELECT>
					<antwortRB3>Weiss ich nicht</antwortRB3>
					<antwortRB3SELECT>false</antwortRB3SELECT>
					<score>1</score>
					<bemerkung>images/blank.png</bemerkung>
					<open>false</open>
				</question>
			</questions>


mxml
Code:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"  
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx"  
			   width="1002" height="680" backgroundColor="#D7EEFA"
			   creationComplete="initApp()"
			   applicationComplete="appComplete()">	

	<fx:Declarations>
		<fx:XML id="questions" source="Questions.xml"/>	
	</fx:Declarations>

	
	<fx:Script>
		<![CDATA[
			import mx.core.FlexGlobals;
			import mx.events.IndexChangedEvent;						
			
			private function initApp():void
			{				
				dg.setFocus();
				dg.selectedIndex = 1;				
			}
			
			private function appComplete():void
			{
				dg.addEventListener( KeyboardEvent.KEY_UP, keyHandler );
			}
			
			public function keyHandler( event:KeyboardEvent):void 
			{
				if( event.keyCode == Keyboard.LEFT )
				{
					event.stopImmediatePropagation();		
					dg.setFocus();
					
					//dg.selectedIndex += 1;
				} 
			}
			
			private function tabChangeView( event:IndexChangedEvent ):void
			{				
				if( event.newIndex == 0 )
				{					
				}
				else if( event.newIndex == 1 )
				{
					dg.setFocus();
				}
				else if( event.newIndex == 2 )
				{					
				}
			}
			
		]]>
	</fx:Script>	
	
		<mx:TabNavigator x="14.7" y="10.25" width="964" height="651" change="{tabChangeView(event)}" creationPolicy="all">
			
				<s:NavigatorContent label="Auswertung" width="100%" height="100%" id="tab_Analysis">
				</s:NavigatorContent>
			
				<s:NavigatorContent label="Übersicht" width="100%" height="100%" id="tab_Uebersicht">
						<mx:DataGrid id="dg" color="0x323232" width="890" dataProvider="{questions.question}" height="567" variableRowHeight="true" dropShadowVisible="true" x="41" y="16">
							<mx:columns>
								<mx:DataGridColumn dataField="nr" headerText="Nr" width="50" textAlign="center"/>
								<mx:DataGridColumn dataField="frage" headerText="Frage" width="300"/>
								<mx:DataGridColumn dataField="antwortText" headerText="Antwort" width="300" itemRenderer="MyRenderer" />				
								<mx:DataGridColumn dataField="score" headerText="Score" width="50" textAlign="center"/>
								<mx:DataGridColumn dataField="bemerkung" headerText="Bemerkung" width="100">
									<mx:itemRenderer>
										<fx:Component>
											<mx:Image scaleContent="false" width="22"/>	
										</fx:Component>
									</mx:itemRenderer>
								</mx:DataGridColumn>	
							</mx:columns>
						</mx:DataGrid>
				</s:NavigatorContent>
			
				<s:NavigatorContent label="Fragebogen" width="100%" height="100%" id="tab_Questionary">
				</s:NavigatorContent>
			
		</mx:TabNavigator>
</s:Application>
renderer
Code:
<?xml version="1.0" encoding="utf-8"?>
<mx:HBox width="100%" height="26" horizontalGap="4" 
         xmlns:mx="http://www.adobe.com/2006/mxml" 
		 verticalScrollPolicy="off" horizontalScrollPolicy="off"  
		 creationComplete="init()"
		 implements="mx.controls.listClasses.IDropInListItemRenderer">

  <mx:Script>
    <![CDATA[
		import mx.containers.Canvas;
		import mx.controls.Button;
		import mx.controls.DataGrid;
		import mx.controls.RadioButton;
		import mx.controls.RadioButtonGroup;
		import mx.controls.Text;
		import mx.controls.listClasses.BaseListData;
		
		private var _dg:DataGrid;		
		private var _listData:BaseListData;		
		private var lastIndexRBG:String = "";
				
		public function get listData():BaseListData
		{
			return _listData;
		}
		
		public function set listData( value:BaseListData ):void
		{
			_listData = value;
			invalidateProperties();
		}
		
		private function init():void
		{
			_dg = _listData.owner as DataGrid;
			_dg.addEventListener( KeyboardEvent.KEY_UP, itemSelect );
										
			if( data.open == "" )
			{
				this.height = 0;
				this.enabled = false;
				this.visible = false;
				this.focusEnabled = false;
				this.maxHeight = 0;
				this.setStyle( "height", 0 );
			}
			else if( data.open == true )
				this.height = 140;
			else	
				this.height = 26;			
		}

      	override public function set data( value:Object ):void
      	{
        	super.data = value;			

        	if( value == null )
        	{
          		textArea.text = "";
          		return;
        	}
			
			textArea.setStyle("fontWeight", "bold");
        	textArea.text = value.antwortText;			
      	}	
		 
		public function itemSelect( event:KeyboardEvent):void 
		{			
			if( data.open == false )
			{
				if( event.keyCode == Keyboard.ENTER )
				{					
						if( _dg.selectedItem == data  )
						{
							this.height = 140;
						}
						else
						{
							this.height = 26;			
						}									
				}		
			}			
			
			if( event.keyCode == Keyboard.RIGHT )
			{				
				if( _dg.selectedItem == data  )
				{
					btnSetFocus.dispatchEvent( new MouseEvent(MouseEvent.CLICK) );
				}				
			}
		}
		
		public function dgFocus( event:KeyboardEvent ):void 
		{			
			if( event.keyCode == Keyboard.LEFT )
			{
				checkRadioSelect();				
			}
			
			if( event.keyCode == Keyboard.DOWN || event.keyCode == Keyboard.UP )
			{
				lastIndexRBG = rbg.selection.id;
			} 
		}
		
		public function focusChange( event:FocusEvent ):void 
		{			
			this.addEventListener( KeyboardEvent.KEY_UP, dgFocus );
		}		
		
		private function checkRadioSelect():void
		{
			if( lastIndexRBG == "rbtn01" )
				rbtn01.selected = true;
			else if( lastIndexRBG == "rbtn02" )
				rbtn02.selected = true;				
			else if( lastIndexRBG == "rbtn03" )
				rbtn03.selected = true;			
		}
		
    ]]>
  </mx:Script>
	
	<mx:Canvas height="140" width="623" horizontalScrollPolicy="off" verticalScrollPolicy="off">		
		<mx:Text id="textArea"  x="11" y="1"/>
		<mx:RadioButtonGroup id="rbg" enabled="true"/>
		<mx:RadioButton x="18" y="30" focusOut="focusChange(event)" selected="{Boolean(data.antwortRB1SELECT)}" id="rbtn01" label="{data.antwortRB1}" groupName="rbg" />
		<mx:RadioButton x="18" y="60" focusOut="focusChange(event)" selected="{Boolean(data.antwortRB2SELECT)}" id="rbtn02" label="{data.antwortRB2}" groupName="rbg"/>
		<mx:RadioButton x="18" y="90" focusOut="focusChange(event)" selected="{Boolean(data.antwortRB3SELECT)}" id="rbtn03" label="{data.antwortRB3}" groupName="rbg" />		

		<mx:Button x="269" y="2" width="20" id="btnSetFocus" visible="false" click="focusManager.setFocus(rbtn01)"/>
	</mx:Canvas>
	
</mx:HBox>
cytrics ist offline   Mit Zitat antworten
Alt 02-10-2010, 08:36   #10 (permalink)
keep cool...
 
Benutzerbild von cytrics
 
Registriert seit: Mar 2006
Ort: Erlangen
Beiträge: 356
Hy,

keiner eine Idee?
Wär echt wichtig ...


Danke

Grüße
cytrics ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
XML mit Datagrid rmich Flex allgemein 2 01-12-2006 10:42
Inhalte von einem Datagrid in ein zweites Datagrid übergeben...?! dahoody Flash MX 2004 0 16-02-2005 14:19
DataGrid mit xml daltonismo Komponenten und SmartClips 1 04-10-2004 13:55
DataGrid silentx Flash MX 0 01-08-2004 13:34
DataGrid Hydra Flash MX 2004 0 22-06-2004 04:11


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:42 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele