Using itemCreationPolicy with a custom component
I'm working on a project where the users need to be able to have a 'filtered' view of one of the edit dialogs. I'm using view states to control which of the input fields show up for each view. The 'save' logic is the same for both states, so I still need to be able to pull data for the inputs even if they are not currently displayed. I tried setting itemCreationPolicy to immediate with no success. Some of the inputs were getting created but the initial values were not being set. The issue seems to be that the input component (an extended version of DropDownList) defers setting the selected value until the commitProperties() method. Since the inpit isn't actually being shown, the commitProperties() method is never getting called and the value is never being set.
Can anyone suggest a workaround for this issue? The only thing I can think of would be to use includeInLayout and visible to show/hide the inputs, but that is going to get really messy since I would have to apply it to every input and the FormItem components that enclose them.
Jasmin,
Is your class included in the custom component?
Yes, It is a annotated entity class,
When creating sessionFactory it is not loading the class.
i'm using flowing code block for creating sessionFactory,
factory =
new AnnotationConfiguration().addAnnotatedClass(dao.entity.UserEntity.
class).setProperty(
"hibernate.dialect",m_dialect ).setProperty(
"hibernate.connection.driver_class", m_driverClass).setProperty(
"hibernate.connection.url", m_connectionUrl ).setProperty(
"hibernate.connection.username",m_userName).setProperty(
"hibernate.connection.password", m_password).setProperty(
"hibernate.hbm2ddl.auto", m_hbmTodll ).setProperty(
"current_session_context_class",m_contextClass ).configure(resource).buildSessionFactory();
Is the jar referenced in the class patch section of the component.xml?
Yes , I have tried for this approch too , but class is entity class is not loaded.
Similar Messages
-
Using Hibernate as a Custom Component
I don’t know whether this question is appropriate in LC context.
Our scenario, We have very complex logic in each of JDBC store/retrieve activity in the process. We would like to move this part into Hibernate based custom component.
We tried with simple Hibernate persistence class but it seems to be LC not loading them.
1) Is this the restriction with LC? (using hibernate as a custom component)
2) What is the appropriate solution?
You help is highly appreciatedJasmin,
Is your class included in the custom component?
Yes, It is a annotated entity class,
When creating sessionFactory it is not loading the class.
i'm using flowing code block for creating sessionFactory,
factory =
new AnnotationConfiguration().addAnnotatedClass(dao.entity.UserEntity.
class).setProperty(
"hibernate.dialect",m_dialect ).setProperty(
"hibernate.connection.driver_class", m_driverClass).setProperty(
"hibernate.connection.url", m_connectionUrl ).setProperty(
"hibernate.connection.username",m_userName).setProperty(
"hibernate.connection.password", m_password).setProperty(
"hibernate.hbm2ddl.auto", m_hbmTodll ).setProperty(
"current_session_context_class",m_contextClass ).configure(resource).buildSessionFactory();
Is the jar referenced in the class patch section of the component.xml?
Yes , I have tried for this approch too , but class is entity class is not loaded. -
HT204032 Why can you not use powernap with a custom order iMac with solid state?
Why can you not use powernap with a custom order iMac with solid state?
Find it quite ridiculous that a 3 year old mba supports it and not a new iMacAgreed. Why wouldn't you want your Photostream updated while your iMac is sleeping? I am bummed about this.
-
How to use I18N with a custom validator?
This is my custom validator:
public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException
Pattern pat=Pattern.compile(".+@.+\\.[a-z]+");
Matcher m= pat.matcher(value.toString());
if(!m.find())
FacesMessage message = new FacesMessage("Not a valid e-mail address");
throw new ValidatorException(message);
}Instead of providing the text "Not a valid e-mai address", I'd like to get the text out of my ApplicationResources property file.
How can I do this?
I know how to use it with the provided validators, but not with own custom ones
Please help me out, thanksI found a solution for this problem, I don't know it's best practice but here it is :
public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException
String errortext;
Pattern pat=Pattern.compile(".+@.+\\.[a-z]+");
Matcher m= pat.matcher(value.toString());
if(!m.find())
ResourceBundle bundle =
ResourceBundle.getBundle("be.vdab.resources.ApplicationResources", context.getViewRoot().getLocale());
errortext = bundle.getString("erroremail");
FacesMessage message = new FacesMessage(errortext);
throw new ValidatorException(message);
} -
Stumped with a custom component. Can anyone help?
I'm working on a component that I would like to have 3 dream levels plus limbo.
Oh wait, sorry...I'm mixed up. Though I do feel my issue is equally contrived and at times, frustrating to wrap my head around.
What I REALLY would like, is to make a custom component that does indeed have 3 levels, and I'm having issues with mouseover. My goal, Is to have a menu of several items, each a custom component. When a component is clicked, it "opens" into a similar menu of additional components, which in turn can be hovered over to display an image. That seems to be the easy part.
I have created each second level item (blue), that upon mouseover displays an image (green). I have combined all of those into a single custom component, (red) and made individual states for the overall component that 1) displays ONLY the red button and 2) displays the blue components with the red component disabled.
What I can't figure out is how to make ONLY the (red) item appear for mouseover and click when in the top state. What is happening at the moment is that as far as the browser is concerned, the entire component is the mouseover area. This makes it impossible to put multiple (red) items next to each other.
I've tried making the (blue) and (green) components hidden and/or disabled, but it does not seem to effect the problem. I can't make those items not "accept mouseover" because the (blue) items are in turn supposed to be buttons used to display the end (green) image.
Does anyone know what I can do to solve this problem? I hope I was able to describe the situation well enough. Like I said....it's kind of stupid and contrived.WELL. After typing that whole deal out, I seem to have come across the solution myself, and it's ridiculously simple, and makes me feel the same for not figuring it out right away.
Much like everything else in Catalyst, the "accepts mouse events" can be changed for the same object in different states. So what you do is uncheck the "accepts..." box for each item while in the top state, and check it once more in the lower states. Also, the "Transparency accepts mouse" needs to be unchecked.
Simple. -
Can't receive events with a custom component
I am using the MDIPanel created by Christophe Coenraets in
the Sales Builder demo code in Flex 2. However, this custom
component (MDIPanel) doesn't seem to receive regular events other
than the custom events. The MDI Panel source code is included as
entails. Since it extends Panel, I assume that it would get all
regular events coming in but it is not. For example, I can't use
resource bundle to change the label text or I can't seem to get
dataprovider to work within a datagrid inside the MDIPanel. Any
ideas on what's happening here?
package
import mx.core.UIComponent;
import flash.events.MouseEvent;
import flash.events.Event;
import mx.controls.Button;
import mx.events.ResizeEvent;
import flash.display.Graphics;
import mx.managers.CursorManager;
import mx.containers.Panel;
import mx.controls.Image;
import mx.controls.Label;
import mx.states.SetStyle;
public class MDIPanel extends Panel
// Constants for MDI panel event names
public static var MINIMIZE:String = "minimize";
public static var MAXIMIZE:String = "maximize";
public static var CLOSE:String = "close";
public static var RESTORE:String = "restore";I'm curious to know if this is possible as well (or really the question should be, is there a non-hackish way to get a reference to the skin instance)?
When I've needed to do something like this, I've always just dispatched an event off a skin part from within my skin. IE.
this.contentGroup.dispatchEvent(...)
Then I would just listen for the event on the skin part.
This is a bit hackish, so it would be nice if someone could share a better solution. I've been meaning to look into it, just never have been able to justify the time looking for a better solution. -
Error with TaskSearchFilter using Java APIs in custom component
I have created a custom Java component for use in LC Process Mgr.
Upon invoke of process containing component, component fails with the following message:
2011-02-28 16:28:31,260 ERROR [com.adobe.workflow.AWS] Cannot coerce object: [email protected]41 of type: com.adobe.idp.taskmanager.dsc.client.query.TaskSearchFilter to type: class com.adobe.idp.taskmanager.dsc.client.query.TaskSearchFilter
Code is pretty basic:
ServiceClientFactory myFactory = ServiceClientFactory.createInstance();
TaskManagerQueryService queryManager = TaskManagerClientFactory.getQueryManager(myFactory);
TaskSearchFilter filter = new TaskSearchFilter();
filter.addCondition(TaskSearchingConstants.pSTATUS, Operator.EQUALS, "3");
List<TaskRow> result = queryManager.taskSearch(filter);
Error seems to occur with the creation of the List. This code works ok when run as standalone file in either Eclipse or Netbeans but not within the component.
All necessary JARs are included and are listed in the class-path in component.xml.
Does anyone have any ideas?
Thanks,
DavidLooks like a class loader issue. Usually this is caused by having the a class (TaskSearchFilte) in your component that on the server. In other words there are two copies of the TaskSearchFilte class - yours and the one already in LiveCycle - and they are in conflict.
If that's the case, the solution is simple:
remove the jar files containing the TaskSearchFilte (and any other LiveCycle clients) from your component's jar file. You may need them in the build path, so your code can compile - but you don't need them in the final component jar.
remove the references to these jar files from the component.xml file's class-path entry
add an import-packages section to your component.xml file. This will not reference the jar files, but the package names themselves. For example:
<import-packages>
<package version="1.0">com.adobe.idp.taskmanager.dsc.client.query.TaskSearchFilter</package>
<!-- add more as needed -->
</import-packages> -
Customer creation using BAPI with given customer number
Hi All,
Can we create the customer with our own customer number using the BAPI - BAPI_CUSTOMER_CREATEFROMDATA1.
Generally SAP Creates its own number using number range objects,but i want to create customer with our own specified number.
I found the BADI - CUSTOMER_ADD_DATA for XD01,but it is not working for BAPI.
Please give me the solutions.
Regards,
Srinivas.Thanks once again.
The interface is like this NON-SAP (Front-end)
Mercator
SAP (Back-end).
and the volume of Date is more than 20,000 a day and mercator will put into the 'Q'.i do not think the data flow in front-end and back-end is authentic.
and lot of business logic is involved in these three systems.
I found the BADI for this,but it is not working for the BAPI.Please suggest any thing for BAPI - BAPI_CUSTOMER_CREATEFROMDATA1.
Regards,
Srinivas. -
Cannot print using RDP, with a custom page size ,on HP Laserjet M1217nfw MFP
Dear Team,
i have on the server win 2008 R2 standard , i have installed the drivers of HP Laserjet M1217nfw MFP printer ,
on the client i have win pro 7 SP1.
i need to print through RDP the documents generated in my application which i access remotely using RDP.
i know the printer drivers are installed on client and server both.
the issue is of creation of custom pages to print the document in proper format so that it prints in the client PC with proper formatting.
we are currently successfully printing on HP Laserjet P3015 printer but at a different location. and i have 5 branches still to be able to print this document from the application,
I need you advise and assistance as to how do i go about achieving my objective with this printer,
Thanking you in advance
regards
VibesHello JBC666,
I understand that you are having an issue with printing wireless from your M1217nfw. I can understand how frustrating this can be. I would like to confirm a couple of things with you to get better understanding of your setup.
1) How far away from the printer is the router?
2) Has there been an recent changes that could have caused the issue?
As well printing a network test report, is an excellent option to find out if there is any issues with the connection at all. I have included the following steps to print the test.
1) Press the wrench button
2) Press the right arrow until you see Network Config
3) Press Ok
4) Press the right arrow until you see Network Test
5) Press Ok
1) Does anything fail on this test?
2) What is the signal quality?
3) Are you able to view the printers embedded web server?
Steps to accessing the embedded web server
1) Open up your internet browser
2) Type the IP address (from the test report) into the address bar
3) Press Enter
Thank you.
I worked on behalf of HP -
Problem custom component with children in RestoreView phase
Hi there!
I've got a problem with a custom component that I am writing. It consists of several UISelectOne and UIInputText components. Depending on the value selected in the UISelectOne components, the UISelectOne and UIInputText components may change. Therefore I attached a ValueChangeListener to the UISelectOne components. So far, so good.
The problem is, when the event is triggered, I get an ArrayIndexOutOfBoundsException. It took me a while to track it down. The problem seems to be, that during the Restore View phase, the StateManager's restoreComponentTreeStructure method first creates the component again and later restores its tree structure.
During creation of the component, its constructor is called in which I add the children to the component. While restoring the tree structure, the StateManager again adds the children to the component. So the list of my component's children contains each child twice.
The exception is due to the fact that in the saved state array only the original component's states are saved (which is perfectly right). So while restoring state and iterating through the component's children, the exception is thrown for the first child which is twice in the list (which is also perfectly right).
I hope this description is not too confusing. My question is, if anyone can give me a hint what I am doing wrong here? How can I avoid the component being initialized again? Or where should I add the children to the component?
Thanks for any advices!Hi again,
I've perpared a minimal example (which in fact is quite big, but considering it's a custom tag it's probably not possible to make it smaller):
The UITest class (as you can see I add the child component in the constructor):
package test;
import java.io.IOException;
import java.util.*;
import java.util.ArrayList;
import java.util.List;
import javax.faces.application.Application;
import javax.faces.component.*;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;
public class UITest extends UIInput {
public static final String COMPONENT_TYPE = "Test";
public static final String COMPONENT_FAMILY = "Test";
private UISelectOne selectOne;
private UISelectItems selectItems;
public UITest(){
Application application = FacesContext.getCurrentInstance().getApplication();
selectItems = (UISelectItems)application.createComponent(UISelectItems.COMPONENT_TYPE);
List items = new ArrayList();
items.add(new SelectItem("One", "one"));
items.add(new SelectItem("Two", "two"));
selectItems.setValue(items);
selectOne = (UISelectOne)application.createComponent(UISelectOne.COMPONENT_TYPE);
selectOne.getAttributes().put("onchange", "submit()");
Class[] params = {ValueChangeEvent.class};
selectOne.setValueChangeListener(application.createMethodBinding("#{TestBean.valueChange}", params));
selectOne.getChildren().add(selectItems);
this.getChildren().add(selectOne);
public void encodeChildren(FacesContext context) throws IOException {
ResponseWriter writer = context.getResponseWriter();
Iterator children = getChildren().iterator();
while(children.hasNext()){
UIComponent child = (UIComponent)children.next();
if(child.isRendered()){
child.encodeBegin(context);
if(child.getRendersChildren()){
child.encodeChildren(context);
child.encodeEnd(context);
public boolean getRendersChildren(){
return true;
}The component tag class:
package test;
import javax.faces.webapp.UIComponentTag;
public class TestTag extends UIComponentTag {
public String getComponentType() { return "Test"; }
public String getRendererType() { return null; }
}Tag registration:
<tag>
<name>test</name>
<tag-class>test.TestTag</tag-class>
</tag>The backing bean:
package test;
import javax.faces.event.ValueChangeEvent;
public class TestBean {
private String currentValue;
public void valueChange(ValueChangeEvent event) {
System.err.println(event.getNewValue());
public String getCurrentValue() {
return currentValue;
public void setCurrentValue(String currentValue) {
this.currentValue = currentValue;
}And finally the definition in the faces-config:
<component>
<component-type>Test</component-type>
<component-class>test.UITest</component-class>
</component>
<managed-bean>
<managed-bean-name>TestBean</managed-bean-name>
<managed-bean-class>test.TestBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>When included in the JSP and then clicked on the combobox, I get an ArrayIndexOutOfBoundsException.
Can anyone give me a hint what the problem might be?
Thanks in advance! -
Hi,
How can i create a border with a custom component,
e.g. e JCheckBox?
regards
OlekRe,
Hm i have found a solution...
http://www.javalobby.org/java/forums/t33048.html
but this is a custom implementation.
Is there a way to implement this via the legacy classes?
Olek -
Unable to Edit the View in Custom Component
Hi Experts,
Please help me to resolve this issue !
I am unable to lock the BOL Entity in my custom component using BTAdminH. I have written the below code in the Edit event Handler for Edit Button. The lr_entity->lock( ) condition statement is getting false and it is skipping the "set_view_editable( me )." code statement. Why??
This is code excerpt that I have taken from edit button of the BP_HEAD/AccountViewSet and altered to my component/View
DATA: lr_entity TYPE REF TO cl_crm_bol_entity,
lr_controller TYPE REF TO cl_ZVKH8_bspwdcomponent_impl.
TRY.
lr_controller ?= me->comp_controller.
lr_entity ?= lr_controller->typed_context->btadminh->collection_wrapper->get_current( ).
IF lr_entity IS BOUND.
IF lr_entity->IS_LOCKED EQ abap_false.
IF le_entity->IS_CHANGEABLE EQ abap_true.
IF lr_entity->lock( ) EQ abap_true.
me->view_group_context->set_view_editable( me ).
ENDIF.
ENDIF.
ENDIF.
ENDIF.
and when I directly executed the below code in the Edit event Handler for Edit Button I am receiving the dereferencing NULL value exception. Why in my custom component in many places this happening??
me->view_group_context->set_view_editable( me ).
Exception Details
CX_SY_REF_IS_INITIAL - Dereferencing of the NULL reference
Method: ZL_ZVKH8_DETAILSEF_IMPL=>EH_ONBACK
Thanks,
BujjiHi Summit & NishaNC,
Thanks for your responses !
As suggested, I have debugged the code for ->lock( ) method and there are exceptions raised from some methods.
Method GET_LOCK () -> Method GET_ROOT () ->Method GET_PARENT ()
At GET_ROOT( ) method i have received an exception
"Root entity BTAdminH could not be determined" and one more "Entity BTAdminH could not be locked"
Later when I have checked in MODEL Browser, I found that the BOL object "BTAdminH" for my view is an Access object and not the Root Object.
Hence, I have a question? Does the locking can be done only for ROOT Objects?
If this is TRUE then I think this is the major problem with my custom component where even the cross component navigation is also not happening and in many places I am receiving "Dereferencing NULL Value" information.
Also I have gone through some of the Threads and one information that I found from Sumit Mittal
1. An access object is an independent entity, has primary keys of its own.
2. A root object is a special access object that is at the top of the hierarchy based on business rules.
3. A dependent object's primary keys are supplied by access objects and it's lifetime is bound to them. If the parent object is destroyed, the dependent object is also destroyed.
4. Search objects are query objects useful for querying root objects
5. Search result objects - Search objects return the results in the form of a result object together with a relation pointing to the root object.
6. View objects - ?
7. Dynamic search objects - Used in advanced search, supports ranges and operators
Could you please specify in which scenarios we have to go for Access Objects and Root Objects
Thanks,
Bujji -
Option Explicit
Sub BatchProcess()
Dim strFileName As String
Dim strPath As String
Dim oDoc As Document
Dim oLog As Document
Dim oRng As Range
Dim oHeader As HeaderFooter
Dim oSection As Section
Dim fDialog As FileDialog
Set fDialog = Application.FileDialog(msoFileDialogFolderPicker)
With fDialog
.Title = "Select folder and click OK"
.AllowMultiSelect = False
.InitialView = msoFileDialogViewList
If .Show <> -1 Then
MsgBox "Cancelled By User", , _
"List Folder Contents"
Exit Sub
End If
strPath = fDialog.SelectedItems.Item(1)
If Right(strPath, 1) <> "\" _
Then strPath = strPath + "\"
End With
If Documents.Count > 0 Then
Documents.Close savechanges:=wdPromptToSaveChanges
End If
Set oLog = Documents.Add
If Left(strPath, 1) = Chr(34) Then
strPath = Mid(strPath, 2, Len(strPath) - 2)
End If
strFileName = Dir$(strPath & "*.doc?")
While Len(strFileName) <> 0
WordBasic.DisableAutoMacros 1
Set oDoc = Documents.Open(strPath & strFileName)
'Do what you want with oDoc here
For Each oSection In oDoc.Sections
For Each oHeader In oSection.Headers
If oHeader.Exists Then
Set oRng = oHeader.Range
oRng.Collapse wdCollapseStart
InsertMyBuildingBlock "ASAP 1", oRng
End If
Next oHeader
Next oSection
'record the name of the document processed
oLog.Range.InsertAfter oDoc.FullName & vbCr
oDoc.Close savechanges:=wdSaveChanges
WordBasic.DisableAutoMacros 0
strFileName = Dir$()
Wend
End Sub
Function InsertMyBuildingBlock(BuildingBlockName As String, HeaderRange As Range)
Dim oTemplate As Template
Dim oAddin As AddIn
Dim bFound As Boolean
Dim i As Long
bFound = False
Templates.LoadBuildingBlocks
For Each oTemplate In Templates
If InStr(1, oTemplate.Name, "Building Blocks") > 0 Then Exit For
Next
For i = 1 To Templates(oTemplate.FullName).BuildingBlockEntries.Count
If Templates(oTemplate.FullName).BuildingBlockEntries(i).Name = BuildingBlockName Then
Templates(oTemplate.FullName).BuildingBlockEntries(BuildingBlockName).Insert _
Where:=HeaderRange, RichText:=True
'set the found flag to true
bFound = True
'Clean up and stop looking
Set oTemplate = Nothing
Exit Function
End If
Next i
If bFound = False Then 'so tell the user.
MsgBox "Entry not found", vbInformation, "Building Block " _
& Chr(145) & BuildingBlockName & Chr(146)
End If
End Function
This works, using the ASAP 1 watermark that is in bold. ASAP 1 is a built-in building block, if i just rename this to ASAP, but save it in the same place with buildingblocks.dotx it wont work. What do i need to do to be able to use this with my custom building
blocks?Hi,
This is the forum to discuss questions and feedback for Microsoft Excel, this issue is related to Office DEV, please post the question to the MSDN forum for Excel
http://social.msdn.microsoft.com/Forums/en-US/home?forum=exceldev&filter=alltypes&sort=lastpostdesc
The reason why we recommend posting appropriately is you will get the most qualified pool of respondents, and other partners who read the forums regularly can either share their knowledge or learn from your interaction with us. Thank you for your understanding.
George Zhao
TechNet Community Support
It's recommended to download and install
Configuration Analyzer Tool (OffCAT), which is developed by Microsoft Support teams. Once the tool is installed, you can run it at any time to scan for hundreds of known issues in Office
programs. -
How to store a layout, when using CL_SALV_TREE with a container?
Hello,
I'd like to use an object of type CL_SALV_TREE, that is placed on a custom container (and therefore not displayed in fullscreen).
But how do I get the functionality to store a layout, when using CL_SALV_TREE not in fullscreen mode? If you use it in fullscreen mode, you just have to define the function code in your gui status and everything is ok.
But since I want to place my CL_SALV_TREE on a custom container, that method does not work. If I call <my_salv_tree>->get_functions( ) it returns a table, that holds just six entries. So, the appropiate function for storing a layout does not seem to be in the default set of functions, when using CL_SALV_TREE with a custom container. But how do I activate this function?
I already call the functions get_layout() and set_key() - so that shouldn't be the problem. Or is just not possible to use CL_SALV_TREE on a custom container and have the possibility to store layouts?
Kind regards, LarsHello,
I'd like to use an object of type CL_SALV_TREE, that is placed on a custom container (and therefore not displayed in fullscreen).
But how do I get the functionality to store a layout, when using CL_SALV_TREE not in fullscreen mode? If you use it in fullscreen mode, you just have to define the function code in your gui status and everything is ok.
But since I want to place my CL_SALV_TREE on a custom container, that method does not work. If I call <my_salv_tree>->get_functions( ) it returns a table, that holds just six entries. So, the appropiate function for storing a layout does not seem to be in the default set of functions, when using CL_SALV_TREE with a custom container. But how do I activate this function?
I already call the functions get_layout() and set_key() - so that shouldn't be the problem. Or is just not possible to use CL_SALV_TREE on a custom container and have the possibility to store layouts?
Kind regards, Lars -
How to use standard validator with custom component?
Hi folks!
I've implemented a custom component extending UIInput. My component worked well but now I want to use a standard validator.
How can I use it??
regards,
StevenValidation is done by UIInput.validate() which is invoked by processValidators().
So, if you don't redefine these inherited methods they will invoke the
corresponding validators.
Maybe you are looking for
-
All-day events across multiple days
Okay, this is a very specifc question about a very specific situaiton, but I am curious to know what is going on. When I have an all-day event scheduled for one day in iCal and I sync it with my phone (Motorola v551) it shows up as a nice little note
-
hhi guys my video recording sounds not working at all but it's working for other things such as music. I've tried to clear my sound thing near the earphone hole but had no success can someone please help me out?
-
Logical column not diplaying the correct results
Hi, I am trying to display the %iBOTS failed and in my situation all have failed so i should get a value of 100%, but i am getting a value of 1 always even if i change the *100 to *600 menas it is not multiplying, below i is the formula used: CASE WH
-
Is the lightening adaptor the same as a micro USB?
Is the lightening adaptor the same as a micro USB?
-
How to close all running threads
I have many threads running everywhere in my application. when i disconnect from server, all sockets between me and the server must disconnect. but since different threads are having a socket connection each to the server, i cant close them all, sinc