input tag 키패드 입력 이벤트 catch

javascript 2018. 12. 3. 17:17 Posted by jiddong

모바일 기기 input box keypad 입력 이벤트 catch


안드로이드, ios 하이브리드 앱개발시 키패드 이벤트 잡는 방법


$("#input-id").on("change keyup paste", function(){
    dosomething();
})




// jquery 처럼 파라미터 전달하고 체이닝방식으로 개발해봄

//소스 데이터 전송후 getValue 함수를 추가해야함~

var opDailogCallbackListner = [];
$.fn.opDialog = function(_value, _id, _data){
var tempId = this.selector.replace('#','');
if($(this.selector).length != 1){
//팝업창 객체 없음
$('body').append('<iframe id="'+tempId+'" style="display: none;" data-value=undefined iframe>');
}
if(_value == 'open'){
//배경 페이지 생성
$(this.selector).css({"background-color": "rgba(0, 0, 0, 0.5)"
, "display":"block"
, "left": "0px"
, "top": "0px"
, "width": "100%"
, "height": "100%"
, "position": "absolute"
});
//다이어로그 페이지 이동
var url = $(this.selector).attr('data-url');
$(this.selector).attr('src',inavigator.getUrl(url));
}else if(_value == 'close'){
//버튼 이벤트 리스너에 등록된 id를 가진 이벤트가 있을경우에만 실행
var removeIndex = -1;
for (var index = 0; index < window.parent.opDailogCallbackListner.length; index++) {
if(window.parent.opDailogCallbackListner[index].id == tempId){
//close 이벤트시 선택이벤트있을때만 실행
removeIndex = index;
var events = window.parent.opDailogCallbackListner[index].event;
for (var key in events) {
if(_id == key){
events[key](_data);
}
}
}
}
if(removeIndex != -1){
window.parent.opDailogCallbackListner.splice(removeIndex,1);
}
//딤처리 및 화면 초기화
var frame = window.parent.document.getElementById(tempId);
frame.parentNode.removeChild(frame);
}else{
//데이터 url 이벤트 셋팅
$(this.selector).attr('data-url',_value.url);
$(this.selector).attr('data-value', JSON.stringify(_value.data));
opDailogCallbackListner.push({id:tempId , event:_value.buttons});
}
//요 리턴하는법이 체이닝 방식으로 할수있는법
// $('a').func1().func2() 이렇게 호출가능
return this;
}
//사용방법 팝업 생성
$('#iframe0').opDialog({
url : 'popup_test.html',
data : { text : "전달"},
buttons: {
button0 : function(d){console.log(d)},
button1 : function(d){console.log(d)}
}
}).opDialog('open');


//사용방법 팝업 닫기
$('#iframe0').opDialog('close', "button1" , {text :"리턴데이타" });


아파치 포트 막혔을때/ 포트 재기동

기타 2016. 1. 26. 16:16 Posted by jiddong

아파치 포트 막혔을때.


cmd 창에서 netstat -ano | findstr <port>를 입력 또는 netstat -ano 로 해당 포트의 PID를 찾는다.

-a 모든 연결과 수신 대기 포트를 표시
-n 주소와 포트 번호를 숫자 형식으로 표시
-o 각 연결의 소유자 프로세스 ID를 표시

4. tasklist /svc /fi “PID eq  "위 명령어를 통해서 찾은 PID″를 통해서

죽이려고 하는 프로세스가 맞다면 아래와 같이 입력하여 프로세스를 죽이면 됩니다.

taskkill /pid 15788  또는 강제종료 taskkill -f /pid 15788

 


oracle 덤프 뜨기 / 적용하기

카테고리 없음 2016. 1. 12. 13:42 Posted by jiddong

오라클 11g 원격 덤프뜨기


EXPORT

expdp 아이디/비번@192.168.0.0:1521/XE file=c:\foder\dumpFIleName.dmp STATIS

TICS=NONE                      

덤프 import 하기

impdp test/test@orcl dumpfile=test_testdmp schemas=test remap_tablespace=덤프테이블스페이스명:import할유저의테이블스페이스명


IMPORT 

1. 사용자 및 테이블 스페이스 확인. ( 있으면 삭제 )


* User 접속으로 인하여 삭제 안될때 확인 :


SELECT sid, serial#

  FROM v$session

 WHERE username = '사용자'


sql> DROP USER 사용자 CASCADE

sql> DROP TABLESPACE 사용자테이블스페이스데이터 INCLUDING CONTENTS

sql > DROP TABLESPACE 사용자테이블스페이스인덱스 INCLUDING CONTENTS

sql> DROP TABLESPACE 사용자테이블스페이스temp저장소 INCLUDING CONTENTS


2. 테이블스페이스 dbf 확인 ( 있으면 삭제 )


sql> SELECT T.NAME, D.STATUS, D.NAME

  FROM V$TABLESPACE T, V$DATAFILE D

 WHERE T.TS# = D.TS#



3. 테이블스페이스 생성


sql> CREATE TABLESPACE 사용자테이블스페이스데이터 DATAFILE '경로/파일이름.dbf' SIZE 300 AUTOEXTEND ON

sql > CREATE TABLESPACE 사용자테이블스페이스인덱스 DATAFILE '경로/파일이름.dbf' SIZE 300 AUTOEXTEND ON

sql> CREATE TABLESPACE 사용자테이블스페이스temp저장소 DATAFILE '경로/파일이름.dbf' SIZE 300 AUTOEXTEND ON


4. 사용자 생성


sql> CREATE USER 사용자 IDENTIFIED BY 패스워드 DEFAULT TABLESPACE 사용자테이블스페이스데이터 TEMPORARY TABLESPACE 사용자테이블스페이스temp저장소



5. 사용자 권한


sql> GRANT CONNECT, RESOURCE, EXP_FULL_DATABASE, IMP_FULL_DATABASE TO 사용자


6. import


D:\> imp 사용자/패스워드@SID file='데이터올릴파일명'.dmp full=y ignore=y





( import 시에 옵션 ignore = y 속성은 imp 시에 


IMP-00003 : ORALCE error 959 encountered

ORA-00959 : tablespace 테이블스페이스명 does not exist 


하는 에러를 무시한다는 옵션이다.


기존의 테이블스페이스가 없어 발생하는 문제이기 떄문에 그냥 어차피 무시해 버리자는 ignore 옵션 -ㅅ-;;;)

이클립스 메이븐 Maven dependency lib export 추출 방법

1.  메이븐 빌드후 이클립스 내부 톰캣에 기동 하면 배포된 톰캣폴더에 메이븐에서 사용한 라이브러리가 다 배포되있음 이것을 복사해서 가져가면됨(100%확실한 방법)

eGovFrameDev-3.7.0-64bit(이클립스)\workspace(프로젝트)\.metadata\.plugins\org.eclipse.wst.server.core(이클립스 톰캣)\tmp0(서버1)\wtpwebapps\test(프로젝트이름)\WEB-INF\lib 


2. 메이븐 빌드로 라이브러리 떨구기

프로젝트 - 우클릭 - Run As -Maven Build 

Goals 에 dependency:copy-dependencies 추가  

Run 실행

project- target - dependency folder 에 라이브러리 파일 떨어짐



CSS 셀렉터

javascript 2015. 3. 2. 10:34 Posted by jiddong

CSS 셀렉터 

css 보통 클래스 이름이나 요소(tr, td, div) 선택으로 사용했는데 다양한 셀렉터가 존재 했었다니..

특히 특정 태그의 속성 값으로 색상을 줄수 있다늬!!! 충격이었다 예를 들면 아래와 같다

 

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <style>
  5.         td[field="test"] {
  6.             color: blue;
  7.         }
  8.     </style>
  9. </head>
  10. <body>
  11.     <table>
  12.         <tr>
  13.             <td field="test">CSS selector color Change</td>
  14.             <td>CSS selector color Change</td>
  15.         </tr>
  16.     </table>
  17. </body>
  18. </html>

셀렉터 정보

선택자는 Type(element),Universal(*),class/id,attribute(속성),가상요소/가상클래스,선택자결합(하위,자식,인접) 등으로 구성된다.

PatternMeaningS5C8F3.6O11I9bI8I7I6
#idid로 지정된 요소 선택OOOOOOOO
.classclass로 지정된 요소 선택OOOOOOOO
EE 요소를 선택OOOOOOOO
E:link방문하지 않은 E를 선택OOOOOOOO
E:visited방문한 E를 선택OOOOOOOO
E:hover마우스가 올라가 있는 동안 E를 선택OOOOOOOO
E:active마우스 클릭 또는 키보드(enter)가 눌린 동안 E를 선택OOOOOOOX
E:focusfocus가 머물러 있는 동안 E를 선택OOOOOOXX
E:first-lineE 요소의 첫 번째 라인 선택OOOOOOOX
E:first-letterE 요소의 첫 번째 문자 선택OOOOOOOX
*모든 요소 선택OOOOOOOO
E[foo]‘foo’ 속성이 포함된 E를 선택OOOOOOOX
E[foo="bar"]‘foo’ 속성의 값이 ’bar’와 일치하는 E를 선택OOOOOOOX
E[foo~="bar"]‘foo’ 속성의 값에 ’bar’가 포함되는 E를 선택OOOOOOOX
E[foo|="en"]‘foo’ 속성의 값이 ’en’ 또는 ’en-’ 으로 시작되는  E를 선택OOOOOOOX
E:first-child첫 번째 자식 요소가 E라면 선택OOOOOOOX
E:lang(fr)HTML lang 속성의 값이 ’fr’로 지정된 E를 선택OOOOOOXX
E::beforeE 요소 전에 생성된 요소 선택OOOOOOXX
E::afterE 요소 후에 생성된 요소 선택OOOOOOXX
E>FE 요소의 자식인 F 요소 선택OOOOOOOX
E+FE 요소를 뒤의 F 요소 선택OOOOOOOX
E[foo^="bar"]‘foo’ 속성의 값이 ’bar’로 정확하게 시작하는 요소 선택OOOOOOOX
E[foo$="bar"]‘foo’ 속성의 값이 ’bar’로 정확하게 끝나는 요소 선택OOOOOOOX
E[foo*="bar"]‘foo’ 속성의 값에 ’bar’를 포함하는 요소 선택OOOOOOOX
E:root문서의 최상위 루트 요소 선택OOOOOXXX
E:nth-child(n)그 부모의 n번째 자식이 앞으로부터 지정된 순서와 일치하는 E 라면 선택OOOOOXXX
E:nth-last-child(n)n번째 자식이 뒤로부터 지정된 순서와 일치하는 요소가 E 라면 선택OOOOOXXX
E:nth-of-type(n)E 요소 중 앞으로부터 순서가 일치하는 n번째 E 요소 선택OOOOOXXX
E:nth-last-of-type(n)E 요소 중 끝으로부터 순서가 일치하는 n번째 E 요소 선택OOOOOXXX
E:last-childE 요소 중 마지막 자식이라면 E 선택OOOOOXXX
E:first-of-typeE 요소 중 첫번째 E 선택OOOOOXXX
E:last-of-typeE 요소 중 마지막 E 선택OOOOOXXX
E:only-childE 요소가 유일한 자식이면 선택OOOOOXXX
E:only-of-typeE 요소가 같은 타입이면 선택OOOOOXXX
E:empty텍스트 및 공백을 포함하여 빈 자식을 가진 E를 선택OOOOOXXX
E:targetE의 URI의 대상이 되면 선택OOOOOXXX
E:enabled활성화된 폼 컨트롤 E요소 선택OOOOOXXX
E:disabled비활성화된 폼 컨트롤 E요소 선택OOOOOXXX
E:checked선택된 폼 컨트롤(라디오버튼,체크박스)을 선택OOOOOXXX
E:not(s)s가 아닌 E 요소 선택OOOOOXXX
E~FE 요소가 앞에 존재하면 F를 선택OOOOOOOX

<표 1> CSS 버전에 따른 선택자의 종류와 브라우저별 지원여부 – CSS1 – CSS2 – CSS3

::출처 http://www.clearboth.org/css3_1_by_isdn386/


  1. target_path="/home/profile"
  2.  
  3.  
  4. for line in $(find $target_path/* -name *_copy*)
  5. # _copy 파일이 들어가 있는 파일 검사
  6. do
  7.         copyFile=$line
  8.         originalFile=$(echo $copyFile|sed 's/_copy//g')
  9.        
  10.        
  11.         if [ -f $originalFile ]
  12.         #오리지널 파일이 존재 하면
  13.         then
  14.                
  15.                 if [ $copyFile -ot $originalFile ]
  16.                 #copyFile 이 originalFile 보다 오래 됬으면then 아니면else
  17.                 then
  18.                
  19.                         if [ -f $copyFile ]
  20.                         #파일이 존재 하면
  21.                         then
  22.                                 echo $copyFile
  23.                                 #파일 삭제
  24.                                 rm $copyFile
  25.                         fi
  26.                        
  27.                 fi
  28.                
  29.         fi
  30.        
  31. done


'기타 유틸' 카테고리의 다른 글

ftp 좋은 프로그램  (0) 2012.11.27

보통 자동완성 기능은 Ctrl + Space 로 하시는데 

이클립스에서 사용한 문장을 자동완성 하는기능이있다.

바로  word completion 기능

기본 단축키는 Alt + /  쳐보면 바로 알수있다.


그렇다면 이키를 Shift + Space 로 변경하여 더쉽게 사용하자



eclipse 한글 크게 나오게 하기

eclipse 2013. 3. 18. 14:23 Posted by jiddong

맨날 까묵고 찾아봐서 글쓴다...


eclipse -> Window - >Perferences -> General -> Appearance -> Color and Font -> Java -> 

Java Editor Text Font -> Edit -> 글꼴 (Consolas) 스크립트 (키릴자모) 선택 


[위키] 데코레이터 패턴

javascript 2012. 12. 27. 13:21 Posted by jiddong

데코레이터 패턴

위키백과, 우리 모두의 백과사전.

데코레이터 패턴(Decorator pattern)이란 주어진 상황 및 용도에 따라 어떤 객체에 책임을 덧붙이는 패턴으로, 기능 확장이 필요할 때 서브클래싱 대신 쓸 수 있는 유연한 대안이 될 수 있다.

목차

  [숨기기

[편집]

[편집]자바

// the Window interface
interface Window {
    public void draw(); // draws the Window
    public String getDescription(); // returns a description of the Window
}
 
 
// implementation of a simple Window without any scrollbars
class SimpleWindow implements Window {
    public void draw() {
        // draw window
    }
 
    public String getDescription() {
        return "simple window";
    }
}

아래의 클래스들은 모든 Window 클래스들의 데코레이터를 포함하고 있다.

// abstract decorator class - note that it implements Window
abstract class WindowDecorator implements Window {
    protected Window decoratedWindow; // the Window being decorated
 
    public WindowDecorator (Window decoratedWindow) {
        this.decoratedWindow = decoratedWindow;
    }
}
 
 
// the first concrete decorator which adds vertical scrollbar functionality
class VerticalScrollBarDecorator extends WindowDecorator {
    public VerticalScrollBarDecorator (Window decoratedWindow) {
        super(decoratedWindow);
    }
 
    public void draw() {
        drawVerticalScrollBar();
        decoratedWindow.draw();
    }
 
    private void drawVerticalScrollBar() {
        // draw the vertical scrollbar
    }
 
    public String getDescription() {
        return decoratedWindow.getDescription() + ", including vertical scrollbars";
    }
}
 
 
// the second concrete decorator which adds horizontal scrollbar functionality
class HorizontalScrollBarDecorator extends WindowDecorator {
    public HorizontalScrollBarDecorator (Window decoratedWindow) {
        super(decoratedWindow);
    }
 
    public void draw() {
        drawHorizontalScrollBar();
        decoratedWindow.draw();
    }
 
    private void drawHorizontalScrollBar() {
        // draw the horizontal scrollbar
    }
 
    public String getDescription() {
        return decoratedWindow.getDescription() + ", including horizontal scrollbars";
    }
}

Window 인스터스를 만드는 테스트 프로그램은 아래와 같다.

public class DecoratedWindowTest {
    public static void main(String[] args) {
        // create a decorated Window with horizontal and vertical scrollbars
        Window decoratedWindow = new HorizontalScrollBarDecorator (
                new VerticalScrollBarDecorator(new SimpleWindow()));
 
        // print the Window's description
        System.out.println(decoratedWindow.getDescription());
    }
}

[편집]C++

#include <iostream>
 
using namespace std;
 
/* Component (interface) */
class Widget {
 
public: 
  virtual void draw() = 0; 
  virtual ~Widget() {}
};  
 
/* ConcreteComponent */
class TextField : public Widget {
 
private:                  
   int width, height;
 
public:
   TextField( int w, int h ){ 
      width  = w;
      height = h; 
   }
 
   void draw() { 
      cout << "TextField: " << width << ", " << height << '\n'; 
   }
};
 
/* Decorator (interface) */                                           
class Decorator : public Widget {
 
private:
   Widget* wid;       // reference to Widget
 
public:
   Decorator( Widget* w )  { 
     wid = w; 
   }
 
   void draw() { 
     wid->draw(); 
   }
 
   ~Decorator() {
     delete wid;
   }
};
 
/* ConcreteDecoratorA */
class BorderDecorator : public Decorator { 
 
public:
   BorderDecorator( Widget* w ) : Decorator( w ) { }
   void draw() {
      Decorator::draw();    
      cout << "   BorderDecorator" << '\n'; 
   }  
};
 
/* ConcreteDecoratorB */
class ScrollDecorator : public Decorator { 
public:
   ScrollDecorator( Widget* w ) : Decorator( w ) { }
   void draw() {
      Decorator::draw(); 
      cout << "   ScrollDecorator" << '\n';
   }  
};
 
int main( void ) {
 
   Widget* aWidget = new BorderDecorator(
                     new ScrollDecorator(
                     new TextField( 80, 24 )));
   aWidget->draw();
   delete aWidget;
}

[편집]C#

namespace GSL_Decorator_pattern
{
        interface IWindowObject
        {
                void draw(); // draws the object
                String getDescription(); // returns a description of the object
        }
 
 
        class ControlComponent : IWindowObject
        {
                public ControlComponent()
                {
                }
 
                public void draw() // draws the object
                {
                        Console.WriteLine( "ControlComponent::draw()" ); 
                }
 
                public String getDescription() // returns a description of the object
                {
                        return "ControlComponent::getDescription()";
                }
        }
 
        abstract class Decorator : IWindowObject
        {
                protected IWindowObject _decoratedWindow = null; // the object being decorated
 
                public Decorator( IWindowObject decoratedWindow )
                {
                        _decoratedWindow = decoratedWindow;
                }
 
                public virtual void draw()
                {
                        _decoratedWindow.draw();
                        Console.WriteLine("\tDecorator::draw() ");
                }
 
                public virtual String getDescription() // returns a description of the object
                {
                        return _decoratedWindow.getDescription() + "\n\t" + "Decorator::getDescription() ";
                }
        }
 
        // the first decorator 
        class DecorationA : Decorator
        {
                public DecorationA(IWindowObject decoratedWindow) : base(decoratedWindow)
                {
                }
 
                public override void draw()
                {
                        base.draw();
                        DecorationAStuff();
                }
 
                private void DecorationAStuff()
                {
                        Console.WriteLine("\t\tdoing DecorationA things");
                }
 
                public override String getDescription()
                {
                        return base.getDescription() + "\n\t\tincluding " + this.ToString();
                }
 
        }// end  class ConcreteDecoratorA : Decorator
 
        class DecorationB : Decorator
        {
                public DecorationB(IWindowObject decoratedWindow) : base(decoratedWindow)
                {
                }
 
                public override void draw()
                {
                        base.draw();
                        DecorationBStuff();
                }
 
                private void DecorationBStuff()
                {
                        Console.WriteLine("\t\tdoing DecorationB things");
                }
 
                public override String getDescription()
                {
                        return base.getDescription() + "\n\t\tincluding " + this.ToString();
                }
 
        }// end  class DecorationB : Decorator
 
        class DecorationC : Decorator
        {
                public DecorationC(IWindowObject decoratedWindow) : base(decoratedWindow)
                {
                }
 
                public override void draw()
                {
                        base.draw();
                        DecorationCStuff();
                }
 
                private void DecorationCStuff()
                {
                        Console.WriteLine("\t\tdoing DecorationC things");
                }
 
                public override String getDescription()
                {
                        return base.getDescription() + "\n\t\tincluding " + this.ToString();
                }
 
        }// end  class DecorationC : Decorator
 
}// end of namespace GSL_Decorator_pattern

[편집]파이썬

class Coffee:
    def cost(self):
        return 1
 
class Milk:
    def __init__(self, coffee):
        self.coffee = coffee
 
    def cost(self):
        return self.coffee.cost() + .5
 
class Whip:
    def __init__(self, coffee):
        self.coffee = coffee
 
    def cost(self):
        return self.coffee.cost() + .7
 
class Sprinkles:
    def __init__(self, coffee):
        self.coffee = coffee
 
    def cost(self):
        return self.coffee.cost() + .2
 
# Example 1
coffee = Milk(Coffee())
print "Coffee with milk : "+str(coffee.cost())
 
# Example 2
coffee = Whip(Milk(Sprinkles(Coffee())))
print "Coffee with milk, whip and sprinkles : "+str(coffee.cost())

[편집]자바스크립트

//Class to be decorated
function Coffee(){
    this.cost = function(){
        return 1;
    };
}
 
//Decorator A
function Milk(coffee){
    this.cost = function(){
        return coffee.cost() + 0.5;
    };  
}
 
//Decorator B
function Whip(coffee){
    this.cost = function(){
        return coffee.cost() + 0.7;
    };
}
 
//Decorator C
function Sprinkles(coffee){
    this.cost = function(){
        return coffee.cost() + 0.2;
    };
}
 
//Here's one way of using it
var coffee = new Milk(new Whip(new Sprinkles(new Coffee())));
alert( coffee.cost() );
 
//Here's another
var coffee = new Coffee();
coffee = new Sprinkles(coffee);
coffee = new Whip(coffee);
coffee = new Milk(coffee);
alert(coffee.cost());


출처 위키 피디아

http://ko.wikipedia.org/wiki/%EB%8D%B0%EC%BD%94%EB%A0%88%EC%9D%B4%ED%84%B0_%ED%8C%A8%ED%84%B4